Error Codes
An error code names a situation a runner or a client can meet, and its type URI is the URL of the code's page. A code of the MTHDS standard, such as input.missing, is a core code, documented with the standard on mthds.ai at https://mthds.ai/errors/<code>. A code that starts with pipelex. names a situation the standard leaves to its implementations, and has its page here, at https://docs.pipelex.com/errors/<code>. Each page says what its code means, who must act and what to do, and gives the code's steps, parameters and templates.
These pages are generated from the Pipelex error registry, which follows the MTHDS error registry format under the pipelex prefix the core registry registers to Pipelex. The registry is published with every Pipelex release, as the release asset pipelex-error-registry.json on GitHub and inside the pipelex package. This is version 0.90.0 of the registry. The Error Registry describes how it is maintained.
Every Pipelex error carries a code, one of these or a core code: its problem document names it as code, and its type is the code's page. The Error Model describes how an error class declares the code it raises.
pipelex.billing
Credit and subscriptions: what an organization's plan and balance allow.
| Code | Title | Domain | Retry | Status |
|---|---|---|---|---|
pipelex.billing.plan_limit |
The account's plan does not allow this | account |
no |
409 |
pipelex.billing.credit_exhausted |
The organization is out of credit | account |
no |
402 |
pipelex.billing.subscription_conflict |
The subscription's state does not allow this | account |
no |
409 |
pipelex.billing.plan_refused |
The plan's rules refuse this change | input |
no |
409 |
pipelex.org
Organizations, their members, their API keys and their promo codes.
| Code | Title | Domain | Retry | Status |
|---|---|---|---|---|
pipelex.org.required |
An organization is required | account |
no |
403 |
pipelex.org.mismatch |
The reference belongs to another organization | input |
no |
403 |
pipelex.org.not_found |
The organization's resource does not exist | input |
no |
404 |
pipelex.org.not_manageable |
The resource cannot be changed this way in its state | input |
no |
409 |
pipelex.org.already_exists |
The organization's resource already exists | input |
no |
409 |
pipelex.org.promo_invalid |
The promo code cannot be redeemed | input |
no |
422 |
pipelex.org.promo_credit_pending |
The promo credit is pending | runtime |
no |
502 |
pipelex.catalog
Saved methods in an organization's catalog.
| Code | Title | Domain | Retry | Status |
|---|---|---|---|---|
pipelex.catalog.not_found |
The saved method does not exist | input |
no |
404 |
pipelex.catalog.not_published |
The saved method has no published version | input |
no |
409 |
pipelex.catalog.being_deleted |
The saved method is being deleted | input |
no |
409 |
pipelex.catalog.deletion_failed |
The saved method's deletion failed | runtime |
yes |
503 |
pipelex.catalog.update_conflict |
The saved method changed since it was read | input |
no |
409 |
pipelex.catalog.selector_invalid |
The catalog selector is malformed | input |
no |
422 |
pipelex.catalog.link_conflict |
The directory is linked to another method | input |
no |
none (client) |
pipelex.run
Pipelex's extensions to runs.
| Code | Title | Domain | Retry | Status |
|---|---|---|---|---|
pipelex.run.already_exists |
A run with this id already exists | input |
no |
409 |
pipelex.request
Refusals of a request's shape that name a fact no core code carries.
| Code | Title | Domain | Retry | Status |
|---|---|---|---|---|
pipelex.request.dependency_key_mismatch |
A dependency is keyed by another address than its manifest declares | input |
no |
422 |
pipelex.storage
Pipelex's storage addresses and uploads.
| Code | Title | Domain | Retry | Status |
|---|---|---|---|---|
pipelex.storage.uri_invalid |
The storage address is malformed | input |
no |
422 |
pipelex.storage.not_found |
A stored file is gone | runtime |
no |
500 |
pipelex.storage.damaged |
A stored file is damaged | runtime |
no |
500 |
pipelex.storage.unavailable |
Storage is unavailable | runtime |
yes |
503 |
pipelex.storage.not_configured |
This deployment serves no storage for that address | operator |
no |
500 |
pipelex.storage.grant_unusable |
The upload grant is spent or expired | runtime |
yes |
403 |
pipelex.storage.grant_mismatch |
The upload differs from its grant | runtime |
no |
403 |
pipelex.storage.upload_refused |
Storage refused the upload | runtime |
no |
403 |
pipelex.security
Pipelex's own refusals made for safety, each recorded as a security event.
| Code | Title | Domain | Retry | Status |
|---|---|---|---|---|
pipelex.security.reserved_key |
The request carries a reserved key | input |
no |
422 |
pipelex.security.result_outside_scope |
A result location lies outside the run | runtime |
no |
500 |
pipelex.config
The runtime's own configuration.
| Code | Title | Domain | Retry | Status |
|---|---|---|---|---|
pipelex.config.invalid |
The runtime's configuration is invalid | operator |
no |
500 |
pipelex.config.syntax |
A configuration file does not parse | operator |
no |
500 |
pipelex.config.file_missing |
A configuration file is missing | operator |
no |
500 |
pipelex.config.variable_missing |
A configuration variable is not set | operator |
no |
500 |
pipelex.config.credential_missing |
An inference backend has no credential | operator |
no |
500 |
pipelex.config.credential_refused |
A service refused the configured credential | operator |
no |
500 |
pipelex.config.dependency_missing |
An optional dependency is not installed | operator |
no |
500 |
pipelex.plugin
The plugins installed in the runtime.
| Code | Title | Domain | Retry | Status |
|---|---|---|---|---|
pipelex.plugin.not_found |
No plugin provides the configured choice | operator |
no |
500 |
pipelex.plugin.broken |
A plugin failed to load | operator |
no |
500 |
pipelex.plugin.conflict |
Two plugins claim the same slot | operator |
no |
500 |
pipelex.plugin.api_mismatch |
A plugin targets another plugin API | operator |
no |
500 |
pipelex.deployment
The policies of a runner deployment.
| Code | Title | Domain | Retry | Status |
|---|---|---|---|---|
pipelex.deployment.orchestration_override_forbidden |
This deployment does not allow choosing the orchestration mode | input |
no |
422 |
pipelex.deployment.custom_code_requires_sandbox |
Custom code needs a sandbox-hosted deployment | operator |
no |
501 |
pipelex.deployment.python_structures_refused |
Python structure classes are not allowed here | method |
no |
422 |
pipelex.deployment.token_claims_invalid |
The token's claims cannot be used | operator |
no |
500 |
pipelex.docgen
The document engines that print a PipeDocGen step's documents.
| Code | Title | Domain | Retry | Status |
|---|---|---|---|---|
pipelex.docgen.engine_unavailable |
No document engine prints this here | operator |
no |
501 |
pipelex.docgen.template_invalid |
The document template cannot be used | method |
no |
422 |
pipelex.docgen.resource_refused |
The document names a file it may not read | method |
no |
422 |
pipelex.docgen.content_unprintable |
The document's content cannot be printed | input |
no |
422 |
pipelex.docgen.print_timeout |
Printing the document took too long | runtime |
yes |
504 |
pipelex.docgen.template_warning |
The document template may be faulty | method |
no |
none (warning) |
pipelex.sandbox
The Daytona sandbox that runs a method's own code.
| Code | Title | Domain | Retry | Status |
|---|---|---|---|---|
pipelex.sandbox.unavailable |
The Daytona sandbox could not be started | runtime |
yes |
503 |
pipelex.codegen
Code generated from a method.
| Code | Title | Domain | Retry | Status |
|---|---|---|---|---|
pipelex.codegen.output_conflict |
Codegen will not write there | input |
no |
409 |
pipelex.codegen.lock_invalid |
The codegen lock is unreadable | input |
no |
422 |
pipelex.codegen.lock_unsupported |
The codegen lock needs a newer Pipelex | operator |
no |
500 |
pipelex.codegen.lock_not_found |
No codegen lock in this directory | input |
no |
404 |
pipelex.codegen.drifted |
The generated code has drifted from its method | input |
no |
409 |
pipelex.connector
The toolsets a method's connectors offer a model.
| Code | Title | Domain | Retry | Status |
|---|---|---|---|---|
pipelex.connector.tool_not_in_toolset |
The tool is not in the connector's toolset | method |
no |
422 |
pipelex.erasure
The erasure of runs and methods.
| Code | Title | Domain | Retry | Status |
|---|---|---|---|---|
pipelex.erasure.incomplete |
The erasure left data behind | runtime |
yes |
503 |
pipelex.webhook
The webhooks a caller registers to hear about its runs.
| Code | Title | Domain | Retry | Status |
|---|---|---|---|---|
pipelex.webhook.delivery_failed |
A webhook was not delivered | input |
yes |
502 |