# 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