pub enum ErrorData {
Show 53 variants
KeyInputInvalid {
reason: String,
},
KeyCiphertextInvalid {
reason: String,
},
BindingNotConfigured {
binding_name: String,
env_var: String,
},
BindingConfigInvalid {
binding_name: String,
env_var: String,
reason: String,
},
UnsupportedBindingProvider {
binding_name: String,
env_var: String,
provider: String,
},
StorageOperationFailed {
binding_name: String,
operation: String,
},
StorageAccessDenied {
binding_name: String,
operation: String,
},
StorageObjectNotFound {
binding_name: String,
operation: String,
},
StorageObjectAlreadyExists {
binding_name: String,
operation: String,
},
BuildOperationFailed {
binding_name: String,
operation: String,
},
EnvironmentVariableMissing {
variable_name: String,
},
InvalidEnvironmentVariable {
variable_name: String,
value: String,
reason: String,
},
InvalidConfigurationUrl {
url: String,
reason: String,
},
EventProcessingFailed {
event_type: String,
reason: String,
},
GrpcConnectionFailed {
endpoint: String,
reason: String,
},
GrpcServiceUnavailable {
service: String,
endpoint: String,
reason: String,
},
GrpcRequestFailed {
service: String,
method: String,
details: String,
},
ServerBindFailed {
address: String,
reason: String,
},
AuthenticationFailed {
provider: String,
binding_name: String,
reason: String,
},
OperationNotSupported {
operation: String,
reason: String,
},
SandboxCommandFailed {
failure: String,
reason: String,
},
SandboxOutcomeUnknown {
operation: String,
reason: String,
},
SandboxNotAsDeclared {
sandbox_id: String,
restriction: String,
reason: String,
},
SandboxUnreachable {
operation: String,
reason: String,
},
FeatureNotEnabled {
feature: String,
},
GrpcCallFailed {
service: String,
method: String,
reason: String,
},
DeserializationFailed {
message: String,
type_name: String,
},
SerializationFailed {
message: String,
},
UnexpectedResponseFormat {
provider: String,
binding_name: String,
field: String,
response_json: String,
},
CloudPlatformError {
message: String,
resource_id: Option<String>,
},
PostgresSecretResolutionFailed {
binding_name: String,
secret: String,
reason: String,
},
PostgresSecretValueInvalid {
binding_name: String,
secret: String,
reason: String,
},
ResourceNotFound {
resource_id: String,
},
RemoteResourceNotFound {
operation_context: String,
resource_type: String,
resource_name: String,
},
RemoteResourceConflict {
operation_context: String,
resource_type: String,
resource_name: String,
conflict_reason: String,
},
RemoteAccessDenied {
operation_context: String,
resource_type: String,
resource_name: String,
},
RateLimitExceeded {
operation_context: String,
details: String,
},
Timeout {
operation_context: String,
details: String,
},
RemoteServiceUnavailable {
operation_context: String,
details: String,
},
QuotaExceeded {
operation_context: String,
details: String,
},
InvalidInput {
operation_context: String,
details: String,
field_name: Option<String>,
},
AuthenticationError {
operation_context: String,
details: String,
},
Other {
message: String,
},
PresignedRequestExpired {
path: String,
expired_at: DateTime<Utc>,
},
HttpRequestFailed {
url: String,
method: String,
},
LocalFilesystemError {
path: String,
operation: String,
},
ClientConfigLoadFailed {
provider: String,
},
BindingSetupFailed {
binding_type: String,
reason: String,
},
KvOperationFailed {
operation: String,
key: String,
reason: String,
},
QueueOperationFailed {
operation: String,
reason: String,
},
QueueProviderResponseInvalid {
reason: String,
},
RemoteAccessFailed {
operation: String,
},
ClientConfigInvalid {
platform: Platform,
message: String,
},
}Expand description
Errors related to alien-bindings operations.
Variants§
KeyInputInvalid
Plaintext or context is outside the portable Key binding limits.
KeyCiphertextInvalid
Decrypted provider data is not a valid Alien Key frame.
BindingNotConfigured
No binding configuration was found for the requested binding name (the
ALIEN_<NAME>_BINDING environment variable was not set).
Fields
BindingConfigInvalid
Binding provider configuration is invalid or missing.
Fields
UnsupportedBindingProvider
Binding configuration named a provider that this build does not support.
Fields
StorageOperationFailed
Storage operation failed due to provider issues.
Fields
StorageAccessDenied
Storage credentials are missing permission for an operation.
Fields
StorageObjectNotFound
The requested object does not exist.
Fields
StorageObjectAlreadyExists
A create-only storage write found an existing object.
Fields
BuildOperationFailed
Build operation failed due to provider issues.
Fields
EnvironmentVariableMissing
Required environment variable is missing or invalid.
InvalidEnvironmentVariable
Environment variable has an invalid value.
Fields
InvalidConfigurationUrl
Configuration URL is malformed or invalid.
EventProcessingFailed
Event processing failed due to malformed or unsupported data.
Fields
GrpcConnectionFailed
gRPC connection failed or became unavailable.
Fields
gRPC service unavailable or returned error.
GrpcRequestFailed
gRPC request failed with an error status.
Fields
ServerBindFailed
Server failed to bind to the specified address.
AuthenticationFailed
Authentication failed for the configured provider.
Fields
OperationNotSupported
Operation not supported by the configured provider.
Fields
SandboxCommandFailed
A command run inside a sandbox did not complete.
Visibility is inherited for the reason SandboxUnreachable gives below: what this wraps is
often a cloud client’s error carrying the response text of the call that failed, and
into_external reads only the outermost flag — so a fixed false here would publish it.
Fields
SandboxOutcomeUnknown
A sandbox operation was dispatched and never reported its outcome.
The counterpart to SandboxUnreachable: there the call did not take effect and repeating it
is safe, here it may already have taken effect, so a repeat can run the same command twice.
Visibility is inherited for the reason SandboxUnreachable gives below.
502 rather than the 503 its neighbour carries: the exchange with the sandbox broke down, which is not the same invitation to try again later.
SandboxNotAsDeclared
A sandbox came up without a restriction its declaration asked for.
Distinct from a refused call: the data plane accepted the request and answered, and what it built is not what was asked for. The sandbox id is carried because the caller never receives one — this is the failure where an operator has to be able to find what was left behind if deleting it also failed.
Fields
SandboxUnreachable
The sandbox agent could not be reached, or the connection dropped mid-response.
Visibility is inherited rather than declared public: what this wraps is often the cloud
client’s catch-all, which carries the raw request and response text of the call that
failed. Marking the wrapper external does not redact a source, so a fixed false here
would carry that text out to a caller.
FeatureNotEnabled
Feature is not enabled in the compiled binary.
GrpcCallFailed
gRPC call failed.
Fields
DeserializationFailed
Deserialization of data failed.
Fields
SerializationFailed
Serialization of data failed.
UnexpectedResponseFormat
Response format from provider API is unexpected or missing required fields.
Fields
CloudPlatformError
Cloud platform API error.
Fields
PostgresSecretResolutionFailed
Reading a cloud Postgres binding’s password from its secret store failed.
The retry and visibility metadata comes from the provider error being wrapped: throttling remains retryable, while permanent provider failures do not become retryable merely because they happened during secret resolution.
secret is the locator, never the secret value.
Fields
PostgresSecretValueInvalid
A cloud Postgres secret was read, but did not contain a usable password.
Provider responses with missing, empty, or malformed values cannot become valid
by retrying the same version. secret is the locator, never the secret value.
Fields
ResourceNotFound
Resource not found in the cloud platform.
RemoteResourceNotFound
The requested remote resource does not exist.
Fields
RemoteResourceConflict
Operation conflicts with current remote resource state.
Fields
RemoteAccessDenied
Access denied due to insufficient permissions.
Fields
RateLimitExceeded
Request rate limit exceeded.
Fields
Timeout
Operation exceeded the allowed timeout.
Fields
Remote service is temporarily unavailable.
QuotaExceeded
Quota or resource limits have been exceeded.
Fields
InvalidInput
Invalid or malformed input parameters provided to the operation.
Fields
AuthenticationError
Authentication with cloud provider failed.
Fields
Other
Generic bindings error for uncommon cases.
PresignedRequestExpired
Presigned request has expired and can no longer be used.
Fields
HttpRequestFailed
HTTP request to external service failed.
LocalFilesystemError
Local filesystem operation failed.
ClientConfigLoadFailed
Failed to load platform configuration for the provider.
BindingSetupFailed
Binding setup failed during initialization.
KvOperationFailed
KV operation failed.
Fields
QueueOperationFailed
Queue operation failed.
Fields
QueueProviderResponseInvalid
A queue provider returned invalid message metadata required by the binding contract.
RemoteAccessFailed
Remote access to deployment resources failed.
ClientConfigInvalid
Client configuration is invalid or missing for the platform.
Implementations§
Source§impl ErrorData
impl ErrorData
Sourcepub fn config_invalid(
binding_name: &str,
reason: impl Into<String>,
) -> ErrorData
pub fn config_invalid( binding_name: &str, reason: impl Into<String>, ) -> ErrorData
Construct a ErrorData::BindingConfigInvalid for binding_name,
deriving the exact ALIEN_<NAME>_BINDING env var name internally so call
sites cannot forget it (the omission that repeatedly broke bindings).
Sourcepub fn not_configured(binding_name: &str) -> ErrorData
pub fn not_configured(binding_name: &str) -> ErrorData
Construct a ErrorData::BindingNotConfigured for binding_name,
deriving the exact ALIEN_<NAME>_BINDING env var name internally.
Trait Implementations§
Source§impl AlienErrorData for ErrorData
impl AlienErrorData for ErrorData
Source§fn http_status_code(&self) -> u16
fn http_status_code(&self) -> u16
Source§fn retryable_inherit(&self) -> Option<bool>
fn retryable_inherit(&self) -> Option<bool>
Source§fn internal_inherit(&self) -> Option<bool>
fn internal_inherit(&self) -> Option<bool>
Source§fn http_status_code_inherit(&self) -> Option<u16>
fn http_status_code_inherit(&self) -> Option<u16>
Source§fn human_layer_presentation(&self) -> HumanLayerPresentation
fn human_layer_presentation(&self) -> HumanLayerPresentation
Source§impl<'de> Deserialize<'de> for ErrorData
impl<'de> Deserialize<'de> for ErrorData
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<ErrorData, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<ErrorData, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl Serialize for ErrorData
impl Serialize for ErrorData
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Auto Trait Implementations§
impl Freeze for ErrorData
impl RefUnwindSafe for ErrorData
impl Send for ErrorData
impl Sync for ErrorData
impl Unpin for ErrorData
impl UnsafeUnpin for ErrorData
impl UnwindSafe for ErrorData
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<T> FromBase64 for Twhere
T: for<'de> Deserialize<'de>,
impl<T> FromBase64 for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more