# openEO error codes
The general error handling in the openEO API is documented in the API documentation.
The following table of error codes is incomplete. These error codes will evolve over time. If you are missing any common error, please contribute it by adding an issue (opens new window), creating a pull request (opens new window) or get in contact.
The whole table of error codes is available as JSON file, which can be used by implementors to automatically generate error responses.
Account Management
openEO Error Code | Description | Example Message | HTTP Status Code |
---|---|---|---|
AuthenticationRequired | The client did not provide any authentication details for a resource requiring authentication or the provided authentication details are not correct. | Unauthorized. | 401 |
AuthenticationSchemeInvalid | Invalid authentication scheme (e.g. Bearer). | Authentication method not supported. | 403 |
TokenInvalid | Authorization token has expired or is invalid. Please authenticate again. | 403 | |
CredentialsInvalid | Credentials are not correct. | 403 | |
PermissionsInsufficient | Forbidden. The client did provided correct authentication details, but the privileges/permissions of the provided credentials do not allow to request the resource. | Forbidden. The permissions of the authenticated account do not allow to request the requested resource. | 403 |
Batch Jobs
openEO Error Code | Description | Example Message | HTTP Status Code |
---|---|---|---|
BudgetInvalid | The budget is too low as it is either smaller than or equal to 0 or below the costs. | The specified budget is too low. | 400 |
EstimateComplexity | The process is too complex to calculate an estimate, e.g. due to a UDF or other processes that are complex to estimate costs reliably. | The process is too complex to calculate an estimate. | 500 |
NoDataForUpdate | For PATCH requests: No valid data specified at all. | No data specified to be updated. | 400 |
PropertyNotEditable | For PATCH requests: The specified parameter can't be updated. It is read-only. | The specified property '{property}' is read-only. | 400 |
StorageFailure | Server couldn't store file(s) due to server-side reasons. | Unable to store files due to a server error. Please try again later or contact our support. | 500 |
StorageQuotaExceeded | The storage quota has been exceeded by the user. | Your storage quota has been exceeded. | 400 |
ProcessInvalid | The process given is invalid, which ususlly means that the process metadata is invalid. | Invalid process specified. | 400 |
ProcessGraphMissing | The process doesn't contain a process graph. For jobs, services, and sync. processing the parameter `process` must contain a `process_graph`. | Invalid process specified. It doesn't contain a process graph. | 400 |
ProcessGraphInvalid | The process doesn't contain a valid process graph, which means it doesn't comply to the general structure / schema. | Invalid process graph specified. | 400 |
JobNotFound | The requested job does not exist. | The batch job '{identifier}' does not exist. | 404 |
JobLocked | The job is currently locked due to a running batch computation and can't be modified meanwhile. | Batch job is locked due to a queued or running batch computation. | 400 |
JobNotFinished | Batch job has not finished computing the results yet. Please try again later or contact our support. | 400 | |
JobNotStarted | Job has not been queued or started yet or was canceled and not restarted by the user. | Batch job must be started first. | 400 |
ResultLinkExpired | The signed URLs for batch job results have expired. Please send a request to `GET /jobs/{job_id}/results` to refresh the links. | The link to the batch job result has expired. Please request the results again. | 410 |
PaymentRequired | The budget required to fulfil the request is insufficient. | The budget required to fulfil the request is not sufficient. A payment is required first. | 402 |
BillingPlanInvalid | The billing plan is not on the list of available plans. | The billing plan is invalid. | 400 |
BillingPlanMissing | No billing plan has been specified by the user and the billing plan can't be determined unambiguously. | A billing plan must be specified. | 400 |
Data Processing
openEO Error Code | Description | Example Message | HTTP Status Code |
---|---|---|---|
RequestTimeout | The request took too long and timed out. | Request timed out. | 408 |
BudgetInvalid | The budget is too low as it is either smaller than or equal to 0 or below the costs. | The specified budget is too low. | 400 |
ProcessInvalid | The process given is invalid, which ususlly means that the process metadata is invalid. | Invalid process specified. | 400 |
ProcessGraphMissing | The process doesn't contain a process graph. For jobs, services, and sync. processing the parameter `process` must contain a `process_graph`. | Invalid process specified. It doesn't contain a process graph. | 400 |
ProcessGraphInvalid | The process doesn't contain a valid process graph, which means it doesn't comply to the general structure / schema. | Invalid process graph specified. | 400 |
ProcessGraphComplexity | The process graph is too complex for synchronous processing and will likely time out. Please use a batch job instead. | The process is too complex for for synchronous processing. Please use a batch job instead. | 400 |
ProcessUnsupported | A process (predefined or user-defined) with the specified identifier is not available. To be used when validating or executing process graphs. | Process with identifier '{process}' is not available in namespace '{namespace}'. | 400 |
ProcessParameterUnsupported | Process '{process}' does not support parameter '{parameter}'. | 400 | |
ProcessParameterInvalid | The value passed for parameter '{parameter}' in process '{process}' is invalid: {reason} | 400 | |
ProcessParameterRequired | Process '{process}' parameter '{parameter}' is required. | 400 | |
BillingPlanInvalid | The billing plan is not on the list of available plans. | The billing plan is invalid. | 400 |
BillingPlanMissing | No billing plan has been specified by the user and the billing plan can't be determined unambiguously. | A billing plan must be specified. | 400 |
EO Data Discovery
openEO Error Code | Description | Example Message | HTTP Status Code |
---|---|---|---|
CollectionNotFound | The requested collection does not exist. | Collection '{identifier}' does not exist. | 404 |
File Management
openEO Error Code | Description | Example Message | HTTP Status Code |
---|---|---|---|
StorageFailure | Server couldn't store file(s) due to server-side reasons. | Unable to store files due to a server error. Please try again later or contact our support. | 500 |
StorageQuotaExceeded | The storage quota has been exceeded by the user. | Your storage quota has been exceeded. | 400 |
FileNotFound | The requested file does not exist. | File '{file}' does not exist. | 404 |
FilePathInvalid | The specified path is invalid or not accessible. Path could contain invalid characters, point to an existing folder or a location outside of the user folder. | File path is invalid: {reason} | 400 |
FileOperationUnsupported | The file operation is not supported for the specified path. | 400 | |
FolderOperationUnsupported | The specified path is a folder and the operation is only supported for files. | Operation is only supported for files, not folders. | 400 |
ContentTypeInvalid | The specified media (MIME) type used in the Content-Type header is not allowed. | The media type is not supported. Allowed: {types} | 400 |
FileTypeInvalid | File format or file extension is not allowed. | File format {type} not allowed. Allowed file formats: {types} | 400 |
FileSizeExceeded | File exceeds allowed maximum file size. | File size it too large. Maximum file size: {size} | 400 |
FileContentInvalid | The content of the file is invalid. | File content is invalid. | 400 |
FileLocked | The file is locked by a running job or another process. | File '{file}' is locked by another process. | 400 |
General
openEO Error Code | Description | Example Message | HTTP Status Code |
---|---|---|---|
Internal | An internal server error with a proprietary message. | Server error: {message} | 500 |
NotFound | To be used if the requested resource does not exist. Note: There are specialized errors for missing jobs (JobNotFound), files (FileNotFound), etc. Unsupported endpoints MAY send an 'FeatureUnsupported' (501) error. | Resource not found. | 404 |
FeatureUnsupported | The back-end responds with this error whenever an endpoint is specified in the openEO API, but is not supported. | Feature not supported. | 501 |
InfrastructureMaintenance | Service is currently not available as the infrastructure is currently undergoing maintenance work. | Service is not available at the moment due to maintenance work. Please try again later or contact our support. | 503 |
InfrastructureBusy | Service is generally available, but the infrastructure can't handle it at the moment as too many requests are processed. | Service is not available at the moment due to overloading. Please try again later or contact our support. | 503 |
UnsupportedApiVersion | The service doesn't support the openEO API version specified in the request URL. Clients should check well-known document for supported versions. | The requested API version '{version}' is not supported. | 404 |
RequestTimeout | The request took too long and timed out. | Request timed out. | 408 |
ContentTypeInvalid | The specified media (MIME) type used in the Content-Type header is not allowed. | The media type is not supported. Allowed: {types} | 400 |
Secondary Services
openEO Error Code | Description | Example Message | HTTP Status Code |
---|---|---|---|
BudgetInvalid | The budget is too low as it is either smaller than or equal to 0 or below the costs. | The specified budget is too low. | 400 |
NoDataForUpdate | For PATCH requests: No valid data specified at all. | No data specified to be updated. | 400 |
PropertyNotEditable | For PATCH requests: The specified parameter can't be updated. It is read-only. | The specified property '{property}' is read-only. | 400 |
ProcessInvalid | The process given is invalid, which ususlly means that the process metadata is invalid. | Invalid process specified. | 400 |
ProcessGraphMissing | The process doesn't contain a process graph. For jobs, services, and sync. processing the parameter `process` must contain a `process_graph`. | Invalid process specified. It doesn't contain a process graph. | 400 |
ProcessGraphInvalid | The process doesn't contain a valid process graph, which means it doesn't comply to the general structure / schema. | Invalid process graph specified. | 400 |
PaymentRequired | The budget required to fulfil the request is insufficient. | The budget required to fulfil the request is not sufficient. A payment is required first. | 402 |
BillingPlanInvalid | The billing plan is not on the list of available plans. | The billing plan is invalid. | 400 |
BillingPlanMissing | No billing plan has been specified by the user and the billing plan can't be determined unambiguously. | A billing plan must be specified. | 400 |
ServiceNotFound | The requested secondary service does not exist. | Service '{identifier}' does not exist. | 404 |
ServiceUnsupported | Service type '{type}' is not supported. | 400 | |
ServiceConfigUnsupported | Refers to the secondary service `configuration` object. | Service parameter '{parameter}' is not supported. | 400 |
ServiceConfigInvalid | Refers to the secondary service `configuration` object. | The value passed for the service parameter '{parameter}' is invalid: {reason} | 400 |
ServiceConfigRequired | Refers to the secondary service `configuration` object. | Service parameter '{parameter}' is required. | 400 |
User-Defined Processes
openEO Error Code | Description | Example Message | HTTP Status Code |
---|---|---|---|
ProcessGraphNotFound | The requested user-defined process does not exist. To be used for all endpoints starting with `/process_graphs`. | User-defined process '{identifier}' does not exist. | 404 |
ProcessInvalid | The process given is invalid, which ususlly means that the process metadata is invalid. | Invalid process specified. | 400 |
ProcessGraphMissing | The process doesn't contain a process graph. For jobs, services, and sync. processing the parameter `process` must contain a `process_graph`. | Invalid process specified. It doesn't contain a process graph. | 400 |
ProcessGraphInvalid | The process doesn't contain a valid process graph, which means it doesn't comply to the general structure / schema. | Invalid process graph specified. | 400 |
PredefinedProcessExists | If a user wants to store a user-defined process with the id of a predefined process. | A predefined process with the given identifier exists. | 400 |