Skip to content
ocx
install

Exit codes

Codes follow BSD sysexits.h where one fits. Codes 79 to 82 are specific to OCX.

Values are stable across releases, so branching on $? is supported. Exit numbers 83, 84, 85, 86, 87 are retired and never reused.

Under --format json a failure names its code’s kind and its slug in the error document.

The command succeeded.

The command failed and no more specific code applies.

  • Error kind: internal
SlugMeaning
activation_failedShell activation failed with an unclassified cause
announce_failedAnnouncing failed with an unclassified cause
any_pin_provenance_unavailableVerifying an any pin’s provenance failed with an unclassified cause
archive_internalAn internal archive operation failed
bin_scan_failedScanning for interface binaries failed with an unclassified cause
client_internalA registry operation failed with an unclassified cause
compression_engine_initThe compression engine failed to initialize
dependency_pin_resolution_failedResolving a dependency pin failed with an unclassified cause
dependency_pin_verification_failedVerifying a dependency pin failed with an unclassified cause
dependency_routing_failedRouting a dependency through the index failed with an unclassified cause
dependency_setup_failedSetting up a dependency failed with an unclassified cause
forge_client_buildThe forge HTTP client could not be built
forge_decodeA forge response could not be decoded
forge_failedA forge operation failed with an unclassified cause
forge_missing_fieldA forge response lacks a required field
forge_request_encodeA forge request body could not be encoded
forge_requiredNo forge was supplied to read the committed index root through
forge_statusThe forge answered with an unexpected HTTP status
fork_base_unreachableThe fork’s branch cannot reach the upstream base
fork_field_missingA fork response lacks a required field
fork_not_readyThe fork did not become ready in time
fork_owner_mismatchThe fork is owned by another account than expected
fork_parent_absentThe fork reports no parent
fork_parent_mismatchThe fork’s parent is not the expected upstream
git_command_failedA git command failed
git_push_failedA git push failed for an unrecognised reason
index_path_invalidA local index path is invalid
index_root_missing_fieldThe committed index root lacks a required field
index_root_not_objectThe committed index root is not a JSON object
index_root_parseThe committed index root is not valid JSON
index_singleflight_failedA shared index operation failed with an unclassified cause
index_source_failedAn index source failed with an unclassified cause
internalA failure no classifier recognises
internal_path_invalidAn internal store path has an unexpected structure
launch_spawn_failedThe resolved command could not be started
layer_layout_failedResolving a layer layout failed with an unclassified cause
layer_not_stagedA layer the package needs was not staged
libc_lint_scan_failedWalking the content tree for the libc check failed with an unclassified cause
malformed_fork_full_nameA fork’s full name is malformed
malformed_physical_repositoryThe index root names a malformed registry repository
managed_config_update_failedSyncing the managed-config snapshot failed with an unclassified cause
missing_base_refThe index base branch does not exist
missing_head_rootA concurrent claim’s or announce’s head carries no index root
package_internalA package operation failed with an unclassified cause
package_task_failedA per-package operation failed with an unclassified cause
patch_discovery_failedDiscovering patches failed with an unclassified cause
project_load_failedLoading the project failed with an unclassified cause
project_manifest_edit_divergedThe edited ocx.toml no longer matches the staged configuration
push_option_refusedThe forge refused a git push option
record_inputs_incompleteAn execution record frame carries no argv
setup_bootstrap_failedInstalling ocx into the content store failed with an unclassified cause
singleflight_abandonedThe leader of shared in-flight work stopped without a result
singleflight_failedShared in-flight work failed with an unclassified cause
task_panickedA package task panicked
unknown_compare_statusA forge compare returned a status the client does not model
unyank_tag_not_curatedA tag to unyank is not a curated tag
yank_tag_not_curatedA tag to yank is not a curated tag
yank_unyank_overlapThe same tag is both yanked and unyanked

The command line is invalid: unknown flag, wrong argument count or bad syntax.

  • Error kind: usage_error
SlugMeaning
binding_already_existsA binding with this name already exists
binding_ambiguousA binding exists in several groups and no group was named
binding_not_selectedThe named binding is declared in no selected group
bot_identityThe acting identity is a bot account
delete_needs_tagA tag delete names no single tag, or also names a digest
destination_not_a_directoryThe destination exists and is not a directory
destination_not_emptyThe destination directory is not empty
destination_through_symlinkA destination path resolves through a symlink
duplicate_binding_across_groupsA binding is defined in more than one selected group
duplicate_ownerThe same owner was supplied twice
empty_group_filterA group filter names an empty group
forge_kind_unknownThe forge kind of a self-hosted host is unknown; name it explicitly
forge_transport_operation_unsupportedThe selected transport does not support this operation
forge_transport_unsupportedThe forge does not support the selected transport
fork_host_mismatchThe fork lives on another host than the index
index_named_by_digestThe source names an image index by digest, which cannot merge into the target
invalid_binding_nameA binding name carries a character outside the allowed set
invalid_command_lineThe command line names an unknown flag or nested subcommand, or a missing or malformed argument
invalid_endpoint_urlA Sigstore endpoint URL failed validation
invalid_group_nameA group name carries a character outside the allowed set
invalid_layer_refA layer reference or its layout suffix does not parse
invalid_owner_loginAn owner login carries a character outside letters, digits, dot, underscore and hyphen
invalid_repo_coordinateA repository coordinate is not a valid owner/name
invalid_tagA tag is malformed, or not one the operation may act on
invalid_version_specThe version argument is not a tag, a digest, or a tag pinned to a digest
key_reference_invalidA key reference could not be parsed
malformed_repositoryThe repository is not a well-formed oci:// pointer
metadata_ambiguousMore than one candidate package metadata file was found
metadata_invalid_layer_pathA layer path cannot anchor a metadata file search
metadata_requiredNo package metadata file was given or found
nested_namespace_unsupportedThe forge does not support nested namespaces
no_acting_identityNo owner could be determined to write into the claim
no_curated_tagsNo tag is left to announce once reserved tags are dropped
no_identity_providedNo signer identity was given by flags or a matching trust policy
no_matching_platformThe source index offers no requested platform
no_projectNo ocx.toml exists in the working directory or any parent
no_project_inThe explicitly selected project directory holds no ocx.toml
ocx_home_needs_no_consentThe ocx home is always active and takes no consent stamp
owner_id_mismatchA supplied owner id disagrees with the forge account
platform_ambiguousThe source is a single-platform manifest and more than one platform was named
platform_requiredThe source is a single-platform manifest and no platform was named
project_already_existsocx.toml already exists at the target path
provenance_version_unsupportedThe provenance predicate type is older than SLSA v1.0
prune_digest_tagA digest was given where prune takes a tag
prune_not_a_prereleaseThe —prerelease value is not a pre-release without a build
prune_package_not_bareThe package argument carries a tag or digest
rekor_upload_required_for_keylessSkipping the transparency log upload requires a signing key
self_fork_refusedThe fork namespace is the upstream’s own
sidecar_requires_signatureA sidecar signature format was requested without a signing identity
terminal_output_refusedUnsanitized document bytes were bound for a terminal; redirect to a file or a pipe
unknown_groupA group filter names a group ocx.toml does not declare
unsigned_type_unsupportedAn unsigned attach names a predicate type with no SBOM media type
usageThe command was invoked with arguments it cannot act on
users_api_unavailableThe forge offers no users API to resolve owners through

Input data is malformed or fails verification.

  • Error kind: data_error
SlugMeaning
agnostic_platform_libc_claimA libc-agnostic platform ships a binary that needs a libc
ambiguous_host_leafocx.lock pins several platforms this host could run, none preferred
any_pin_not_advertised_as_anyA dependency pinned as any is not published for any platform
archive_entry_escapeAn archive entry path escapes the extraction root
archive_extracted_no_entriesThe archive extracted no entries
archive_extraction_cap_exceededExtraction exceeded the decompressed-size cap
archive_gnu_sparse_unsupportedAn archive entry uses the unsupported GNU sparse format
archive_hard_link_escapeAn archive hard link does not resolve inside the extraction root
archive_symlink_escapeAn archive symlink points outside the extraction root
archive_tar_invalidThe tar stream is malformed
archive_unsupported_formatThe archive format is not supported
archive_zip_invalidThe zip archive is malformed
attestation_budget_exhaustedThe attestations together exceed the total size limit
attestation_payload_too_largeThe attestation statement exceeds its size limit
attestation_too_largeThe attestation envelope exceeds its size limit
bin_scan_unsupported_hostThis host cannot scan for the target platform’s executables
builder_mismatchThe provenance builder does not match the pinned builder
bundle_parse_failedThe signature bundle could not be parsed
candidate_limit_exhaustedThe examination cap was reached with candidates unexamined and none passing
cert_chain_invalidThe certificate chain does not verify against the trust root
certificate_validity_windowThe log entry time falls outside the certificate validity window
client_serializationA registry document could not be serialized or parsed
command_not_executableThe command resolves to a file that is not executable
command_not_foundThe command does not resolve in the composed environment
command_trampoline_refusedThe command resolves to a toolchain launcher that would re-enter itself
committed_tags_droppedThe announce would drop tags the index already committed
compression_decode_onlyThe format can be extracted but not written
compression_unknown_formatThe compression algorithm could not be determined
credential_helper_invalid_jsonThe credential helper answered with invalid JSON
declared_binary_not_executableA declared binary is not executable
decompression_cap_exceededA layer decompressed past the size cap
dependency_ambiguous_platformSeveral of a dependency’s platforms match the target equally
dependency_conflictDependencies pin conflicting versions of one repository
dependency_declaration_invalidA package declares its dependencies invalidly
dependency_no_compatible_platformA dependency is published for no platform compatible with the target
dependency_pinned_to_indexA dependency is pinned to an image index rather than a platform manifest
desc_disappearedThe package description vanished between two reads
digest_mismatchDownloaded content does not hash to its expected digest
digest_missingThe identifier carries no digest after resolution
direct_digest_pin_in_any_targetAn any package pins a dependency by a platform-specific digest
dispatch_object_digest_mismatchA stored dispatch object does not hash to its claimed digest
duplicate_platform_keyocx.lock lists the same platform twice for one binding
empty_push_setA push names no target platform
entrypoint_collisionTwo packages declare the same entrypoint name
extra_ca_certs_invalidThe extra CA bundle the payload names is not usable
extra_ca_certs_not_utf8The extra CA bundle is not UTF-8 and cannot be persisted
extra_ca_file_invalidThe extra CA bundle file holds no usable certificate
feature_mismatchThe package needs a platform feature this host lacks
forwarded_env_invalidThe OCX_ENV value a parent ocx forwarded is malformed
index_dispatch_digest_mismatchA dispatch object does not hash to the digest its root claims
index_serializationAn index document could not be serialized
integration_namespace_invalidAn integrations namespace is invalid
integration_too_largeAn integrations payload exceeds its size limit
integrations_too_largeA package’s integrations exceed the per-package size limit
invalid_binary_nameA binary name is not valid
invalid_boolean_stringA value is not one of the accepted boolean spellings
invalid_build_metadataA version’s build metadata is invalid
invalid_digestA digest is not a valid algorithm-prefixed hash
invalid_encodingRegistry content is not valid UTF-8
invalid_identifierA package identifier does not parse
invalid_image_indexAn image index document is invalid
invalid_layer_layoutA layer’s strip-components or prefix annotation is invalid
invalid_list_separatorA package env entry declares an unusable list separator
invalid_logo_contentThe logo file’s content does not match its format
invalid_manifestA manifest is invalid
invalid_platformA platform string does not follow the platform grammar
json_serializationJSON could not be serialized or deserialized
key_malformedA signing or verification key holds no usable key
launcher_path_not_utf8A path baked into a generated launcher is not valid UTF-8
launcher_unsafe_characterA value baked into a generated launcher contains an unsafe character
layer_size_exceededA layer declares a size above the allowed maximum
libc_scan_scope_modifierThe libc scan scope carries a modifier it cannot honour
libc_scan_scope_unresolvableThe libc scan scope cannot be resolved
link_path_occupiedThe install link path holds something other than an ocx package link
list_separator_invalidA list-valued environment entry conflicts with or edges on its separator
lock_staleocx.lock does not match ocx.toml
malformed_catalog_keyAn index source served a malformed catalog key
malformed_index_documentAn index document is not valid JSON of the expected shape
malformed_physical_refAn index root carries a malformed physical repository reference
malformed_root_documentA local index root document is not valid JSON of the expected shape
managed_config_entry_too_largeThe managed-config config.toml entry exceeds the allowed size
managed_config_invalid_archiveThe managed-config layer is not a readable archive
managed_config_invalid_tomlThe fetched managed-config payload is not valid TOML
managed_config_layer_digest_mismatchThe managed-config layer does not hash to its declared digest
managed_config_layer_size_exceededThe managed-config layer declares a size above the allowed maximum
managed_config_missing_config_tomlThe managed-config layer contains no config.toml
managed_config_no_any_platformThe managed-config package has no any/any platform entry
managed_config_no_gzip_layerThe managed-config package has no tar+gzip layer
managed_config_unexpected_manifestThe managed-config package has an unexpected manifest shape
metadata_blob_too_largeA package metadata blob exceeds the size cap
missing_digestAn identifier the store needs pinned carries no digest
missing_list_separatorA list-valued package env entry omits its separator
multiple_attestationsMore than one verified attestation matched
multiple_signaturesThe envelope carries other than exactly one signature
nested_image_indexAn image index nests another image index, which OCI does not support
non_utf8_wire_nameA local index path is not valid UTF-8
noncanonical_platform_keyocx.lock records a platform key not in canonical form
not_a_manifestThe registry did not answer with a manifest
package_authoring_invalidPackage metadata cannot be authored as given
package_manager_serializationA package document could not be serialized
package_serializationA package document could not be serialized
patch_descriptor_invalid_jsonA patch descriptor is not valid JSON of the expected shape
patch_descriptor_too_largeA patch descriptor exceeds its structural limits
patch_descriptor_unsupported_versionA patch descriptor has a version this build does not understand
patch_layer_digest_mismatchA patch descriptor layer does not hash to its declared digest
patch_layer_size_exceededA patch descriptor layer declares a size above the allowed maximum
patch_manifest_digest_mismatchA patch descriptor manifest does not hash to its declared digest
patch_snapshot_unsupported_versionThe patch snapshot has a format version this build does not understand
patch_unexpected_artifact_typeA patch descriptor manifest carries an unexpected artifact type
patch_unexpected_layer_media_typeA patch descriptor layer carries an unexpected media type
patch_unexpected_manifestA patch descriptor manifest has an unexpected shape
patch_wrong_layer_countA patch descriptor manifest carries other than exactly one layer
path_escapeA relative path is absolute, escapes its root, or is otherwise unsafe to join
payload_type_unsupportedThe envelope payload type is not in-toto JSON
pin_digest_mismatchThe registry resolved the pinned tag to a different digest
pinned_identifier_missing_digestAn identifier that must be pinned carries no digest
predicate_not_jsonThe predicate file is not JSON
predicate_too_largeThe predicate or statement exceeds its size limit
predicate_type_mismatchThe signed predicate type is not the requested one
project_env_path_separator_in_valueAn ocx.toml path value contains the platform path separator
pull_request_unmergeableThe open announce pull request conflicts with the index
rekor_inclusion_proof_absentThe bundle carries no transparency log inclusion proof
rekor_set_absent_tsa_presentThe bundle has a timestamp authority stamp but no transparency log timestamp, which this build cannot verify
rekor_set_invalidThe transparency log timestamp does not verify against the log key
rekor_set_malformedThe transparency log answered with an unusable timestamp or body
repository_escapes_index_homeAn index repository path escapes its source directory
repository_mismatchA re-claim supplied a repository other than the committed one
reserved_env_keyA package env entry sets a reserved OCX key
root_name_mismatchThe committed index root names a different package
root_repository_mismatchA derived index root points at another repository
sbom_media_type_unsupportedAn unsigned SBOM referrer declares a media type outside the SBOM set
selection_ambiguousThe selection matches more than one package
separator_edged_list_valueA package list value starts or ends with its separator
shim_claim_unfulfilledA declared interface name does not exist in the package
shim_name_invalidA shim name is not a valid binary name
shim_name_not_claimedA shim name is not an interface name the package declares
shim_names_not_enumerableThe package’s interface names cannot be enumerated
signature_invalidThe signature does not verify over the subject digest
simple_signing_claim_unsupportedThe simple signing payload declares an unsupported claim type
statement_subject_absentThe signed statement carries no subjects
statement_subject_mismatchNo subject in the signed statement binds the target digest
statement_subject_weak_algorithmA statement subject carries no sha256 digest
statement_type_unsupportedThe statement type is not an accepted in-toto statement type
subject_digest_mismatchThe registry served subject bytes that do not hash to the resolved digest
subject_digest_unsupportedThe subject digest is not sha256
symlink_requires_tagSymlink resolution needs a tag, not a digest
tag_not_an_image_indexA tag to announce does not point at an image index
template_ambiguous_dependency_refAn interpolation token names an ambiguous dependency
template_ambiguous_self_env_refAn interpolation token names an env var declared more than once
template_disallowed_tokenAn interpolation token is not permitted in this field
template_modifier_not_applicableAn interpolation modifier does not apply to its token
template_undefined_self_env_refAn interpolation token names an env var not declared before it
template_unknown_dependency_refAn interpolation token names an unknown dependency
template_unknown_fieldAn interpolation token names an unknown field
template_unknown_modifierAn interpolation token carries an unknown modifier
template_unknown_tokenAn interpolation token is not recognised
template_value_too_largeAn interpolated value exceeds its size budget
tlog_binding_mismatchThe transparency log entry does not match the received envelope
too_many_attestationsThe target has more attestation referrers than the candidate limit
toolchain_home_not_absoluteThe toolchain home is not an absolute path
transparency_body_mismatchThe transparency log entry belongs to another subject
transparency_log_response_invalidThe transparency log answered with a public-key body that is oversize or not text
traversal_limit_exceededCopying a manifest graph exceeded a traversal limit
undeclared_binaryA scanned executable is not declared in binaries
undeclared_libcA binary needs a libc the package’s platform does not declare
unexpected_artifact_typeAn artifact carries an unexpected artifact type
unexpected_layer_media_typeA layer carries an unexpected media type
unexpected_manifest_typeAn image index arrived where an image manifest was expected
unfollowed_redirectThe registry answered with a redirect the transport did not follow
unknown_env_modifierA package env entry declares a type this build does not know
unparseable_elfA file carries an ELF header but cannot be parsed
unrecognized_interpreterA binary names an ELF interpreter no libc family claims
unsafe_destinationThe registry named a destination the transport refuses
unsupported_index_formatThe index format version is not supported
unsupported_logo_formatThe logo file has an unsupported format
unsupported_media_typeA manifest carries an unsupported media type
unsupported_tlog_entry_kindThe transparency log entry kind is not accepted
version_invalidA package version does not parse
walked_digest_mismatchA source answered a digest request with different content
wrong_layer_countAn artifact carries other than exactly one layer
yanked_refusedThe resolved version is yanked

A required service is unavailable and rerunning will not help.

  • Error kind: unavailable
SlugMeaning
catalog_document_absentThe index source serves no catalog document
endpoint_unresolvableAn endpoint host does not resolve
forge_transport_failedThe forge could not be reached
forge_unavailableThe forge answered with a server error
git_unavailableThe git executable the transport needs is unavailable
index_http_failedAn index request failed
registry_unavailableA registry operation failed in a way a retry does not clear
registry_unreachableThe registry could not be reached
setup_profile_subprocessA shell subprocess setup needs could not run
transparency_log_key_unavailableThe transparency log answered its public-key request with a client error
transparency_log_unreachableThe transparency log cannot be reached and a rerun will not change that

A filesystem read or write failed.

  • Error kind: io_error
SlugMeaning
archive_ioReading or writing an archive entry failed
ci_export_writeWriting the CI export stream failed
ci_file_writeWriting a CI export file failed
client_ioReading or writing a local file during a registry operation failed
compression_createCreating compressed output failed
compression_ioA compression stream failed to read or write
compression_openOpening a file for decompression failed
config_edit_ioReading or writing the config file being edited failed
config_edit_malformedThe config file being edited has a shape the edit cannot apply to
config_edit_parseThe config file being edited does not parse as TOML
config_ioReading a config file failed
credential_store_writeWriting the credential store failed
destination_check_ioInspecting the destination directory failed
extra_ca_certs_read_failedReading the extra CA bundle the payload names failed
extra_ca_file_too_largeThe extra CA bundle file exceeds the allowed size
extra_ca_unreadableThe extra CA bundle cannot be read
file_ioReading or writing an internal file failed
key_unreadableA signing or verification key could not be read from its location
libc_lint_readReading a file while checking its libc requirement failed
managed_config_payload_read_failedReading the managed-config payload failed
managed_config_snapshot_writeWriting the managed-config snapshot failed
managed_config_stage_failedStaging the managed-config payload for publishing failed
output_writeWriting the output tree failed
package_file_ioReading or writing a package file failed
package_manager_internal_fileReading or writing an internal package file failed
patch_blob_write_failedPersisting a patch descriptor blob failed
project_internal_fileReading or writing an internal project file failed
project_ioReading or writing a project file failed
project_registry_ioReading or writing the project registry failed
record_exemption_refusedThe execution-record exemption was refused
record_serialize_failedSerializing an execution record failed
record_write_failedWriting an execution record failed
same_filesystem_check_failedProbing whether two paths share a filesystem failed
setup_ioReading or writing a setup file failed
symlink_walk_ioInspecting a destination path component failed
trust_root_unreadableA trust root file named by the operator could not be read
trusted_root_read_failedReading the trusted root the payload names failed

A transient failure; the same command may succeed on retry.

  • Error kind: temp_fail
SlugMeaning
config_edit_lockedAnother process holds the lock on the config file being edited
credential_helper_timeoutThe credential helper did not answer in time
forge_non_fast_forwardThe push was not a fast-forward; another writer moved the branch
forge_stale_leaseThe branch moved since it was read
forge_transientThe forge answered with a status a retry may clear
forge_transport_transientReaching the forge failed in a way a retry may clear
fulcio_unavailableThe certificate authority is unreachable or overloaded
host_resolution_failedA registry host could not be resolved
index_http_transientAn index request failed in a way a retry may clear
key_backend_unavailableThe signing key backend is temporarily unavailable
merge_request_unconfirmedThe forge did not confirm the merge request in time
observe_racedA tag appeared between the two reads of one announce
oidc_token_unavailableThe CI provider’s OIDC token endpoint is unreachable or overloaded
project_lockedAnother process holds the lock on ocx.toml
prune_refused_pendingThe index still lists a tag prune would delete, pending an announce
prune_tag_still_presentA deleted tag is still present in the registry
registry_transientA registry operation failed in a way a retry may clear
resolve_timeoutResolving a binding timed out
short_blob_readThe registry ended a blob download early
singleflight_capacity_exceededToo many distinct operations were in flight at once
singleflight_timeoutWaiting for shared in-flight work timed out
transparency_log_unavailableThe transparency log is unavailable

The operation was refused for lack of permission.

  • Error kind: permission_denied
SlugMeaning
forge_publisher_not_allowlistedThe publishing project is not on the index project’s job-token allowlist
forge_push_refusedThe forge refused the push
identity_mismatchThe certificate identity does not match the required signer
identity_token_file_permissiveThe identity token file is readable by group or other
issuer_mismatchThe certificate OIDC issuer does not match the required issuer
oidc_pre_check_failedThe OIDC token failed a client-side check before reaching the certificate authority
permission_deniedThe operating system refused access to a file or directory
unsigned_rejected_by_policyAn unsigned document was refused because a signature is required

Configuration is invalid or incomplete.

  • Error kind: config_error
SlugMeaning
ambiguous_extra_ca_certsBoth extra_ca_certs and extra_ca_certs_pem are declared
ambiguous_trust_rootThe payload declares both trusted_root and trusted_root_json
auth_env_missingAn environment variable the authentication type needs is not set
binding_value_invalidA binding’s value is not a valid identifier
binding_value_missing_registryA binding’s identifier names no registry
ci_missing_envA CI environment variable the export needs is not set
config_edit_too_largeThe config file being edited exceeds the allowed size
config_file_too_largeA config file exceeds the allowed size
config_parseA config file does not parse
credential_helper_not_on_pathThe configured credential helper is not on PATH
credential_helper_unsafe_pathThe credential helper resolves to an unsafe path
envrc_existsAn .envrc already exists and —force was not given
extra_ca_certs_pem_invalidThe extra CA bundle inlined in the payload is not usable
extra_ca_value_invalidThe configured extra CA bundle value holds no usable certificate
extra_ca_value_too_largeThe configured extra CA bundle value exceeds the allowed size
forbidden_registry_targetThe rewritten registry resolves into a forbidden address range
fulcio_bad_requestThe certificate authority rejected the signing request
group_holds_direct_bindingA group table holds a binding outside its tools table
index_source_not_publishedThe registry is not a published index source, so it has no catalog to regenerate
invalid_auth_typeThe configured authentication type is not recognized
invalid_envAn OCX environment variable holds a value its declaration refuses
invalid_index_urlA configured index URL is invalid
invalid_managed_config_sourceThe managed-config source is not a valid OCI identifier
invalid_toolchain_name_charsetA group or binding name carries a character toolchain paths refuse
invalid_trust_policyThe payload declares an unusable trust-policy entry
launch_identities_invalidThe OCX_LAUNCH_IDENTITIES value a parent ocx forwarded is malformed
lock_missingocx.lock does not exist
lock_repository_not_bareocx.lock records a repository carrying a tag or digest
managed_config_contains_managed_sectionThe managed-config payload contains a [managed] section
managed_config_invalidThe managed-config settings are invalid, or a system lock refuses the change
managed_config_key_by_pathThe payload declares a trust-policy key signer by path instead of inline
managed_config_payload_invalid_tomlThe managed-config payload is not a valid config file
managed_config_payload_too_largeThe managed-config payload exceeds the allowed size
mirror_config_invalidA registry mirror setting is invalid
no_credential_storeNo credential helper or store is available to save credentials in
no_host_leafocx.lock pins no platform this host can run
package_key_invalidA package key is not a valid identifier
package_key_missing_registryA package key names no registry
patch_config_invalidA patch-tier setting is invalid
patch_project_config_unreadableThe project config patches would freeze into is unreadable
patch_snapshot_activePatch pins cannot advance while OCX_PATCH_SNAPSHOT is set
plain_http_index_not_allowedAn index URL uses plain HTTP for a host not allowed to
project_env_invalid_keyocx.toml sets an invalid environment variable name
project_env_invalid_separatorAn ocx.toml environment entry has an unusable list separator
project_env_invalid_valueAn ocx.toml environment entry has a value of the wrong shape
project_env_reserved_keyocx.toml sets a reserved OCX environment key
project_env_separator_edged_valueAn ocx.toml list value starts or ends with its separator
project_env_separator_on_non_listAn ocx.toml environment entry sets a separator on a non-list value
project_env_unknown_modifierAn ocx.toml environment entry names an unknown modifier type
project_env_unknown_value_fieldAn ocx.toml environment entry table holds an unknown field
project_file_too_largeA project file exceeds the allowed size
project_manifest_not_editableocx.toml is not an editable TOML document
project_toml_invalidocx.toml or ocx.lock is not valid TOML of the expected shape
project_toml_serializeA project file could not be serialized
record_name_not_a_filenameThe record name is not a plain filename
record_sink_symlinkThe execution-record sink is a symlink
record_template_not_uniqueThe record name template has no varying component
record_template_unknown_placeholderThe record name template names an unknown placeholder
records_required_without_sinkExecution records are required but no sink is configured
rendered_config_too_largePersisting the extra CA bundle would exceed the config size limit
reserved_group_nameocx.toml declares a reserved group name
retired_envA retired OCX environment variable is set
session_path_not_absoluteA session PATH entry is not an absolute path
session_path_not_utf8A session PATH entry is not valid UTF-8
session_path_unencodableA session PATH entry contains a character the host format cannot store
shell_section_in_projectocx.toml declares a [shell] section, which only config.toml may hold
ssrf_forbidden_targetA registry host resolves to an address outside the trusted set
system_config_invalidThe system-wide config file is unusable
toolchain_dir_group_or_world_writableThe toolchain_dir directory is writable by other users
toolchain_dir_inaccessibleThe toolchain_dir setting names a path that cannot be inspected
toolchain_dir_inside_global_homeThe toolchain_dir setting resolves inside the global toolchain home
toolchain_dir_is_containment_anchorThe toolchain_dir setting names the home directory or OCX_HOME itself
toolchain_dir_no_containment_anchorNo home directory or OCX_HOME exists to contain toolchain_dir
toolchain_dir_not_a_directoryThe toolchain_dir setting names something other than a directory
toolchain_dir_not_owner_ownedThe toolchain_dir directory is not owned by the current user
toolchain_dir_outside_homeThe toolchain_dir setting resolves outside the home directory and OCX_HOME
toolchain_dir_parent_componentThe toolchain_dir setting contains a ’..’ component
toolchain_dir_relativeThe toolchain_dir setting is a relative path
toolchain_dir_system_prefixThe toolchain_dir setting resolves to a system location
toolchain_dir_unexpandableThe toolchain_dir setting starts with a ’~’ that cannot be expanded
toolchain_name_control_characterA toolchain group or entry name contains a control character
toolchain_name_emptyA toolchain group or entry name is empty
toolchain_name_path_prefixA toolchain group or entry name carries a path prefix
toolchain_name_relativeA toolchain group or entry name is a relative path component
toolchain_name_separatorA toolchain group or entry name contains a path separator
toolchain_name_trailing_dot_or_spaceA toolchain group or entry name ends with a dot or a space
trust_policy_invalidA trust policy entry is malformed
trust_root_loadTrust material failed to load
trust_root_unavailableThe trust root could not be loaded
trusted_root_invalidThe named file is not a usable Sigstore trusted root
unknown_group_sectionA group table holds an unknown key
unsupported_declaration_hash_versionocx.lock records a declaration hash version this build does not understand
unsupported_lock_versionocx.lock has a version this build does not understand
update_section_in_projectocx.toml declares an [update] section, which only config.toml may hold

A named package, tag, file or resource does not exist.

  • Error kind: not_found
SlugMeaning
attestation_not_foundNo verified attestation matches the requested predicate type
binding_not_declaredThe named binding is not declared in ocx.toml
binding_not_foundThe named binding does not exist in ocx.toml
blob_not_foundThe registry has no such blob
build_receipt_not_foundNo build receipt exists beside the bundle
config_file_not_foundAn explicitly named config or project file does not exist
dependency_manifest_not_foundA pinned dependency manifest is not in the registry
dependency_not_foundA dependency is not in the selected index
index_manifest_not_foundThe registry has no manifest for a tag the index update walked
managed_config_input_not_foundA file the managed-config payload names does not exist
managed_config_source_not_foundThe registry has no managed-config package at the configured source
manifest_not_foundThe registry has no such manifest
no_indexable_tagThe repository carries no tag the index can record
no_signatures_foundThe target has no signature referrers
no_usable_bundleReferrers exist but none is a recognised Sigstore bundle
not_in_indexThe package is not listed in the index
owner_unknownThe forge has no account with this login
package_not_foundThe package does not exist
patch_descriptor_vanishedA pinned patch descriptor is no longer in the registry
patch_snapshot_descriptor_missingThe patch snapshot names a descriptor that is not stored locally
repository_not_foundThe registry has no such repository
required_path_missingA required path does not exist
symlink_not_foundThe package has no candidate or current symlink to resolve
tag_not_foundThe registry has no such tag
target_not_an_indexA platform was requested but the reference names a single manifest
target_not_foundThe reference resolves to no manifest for the requested platform
template_dependency_not_installedAn interpolation token names a dependency that is not installed
unclaimed_packageThe package has no index entry to announce into
unresolved_tagA tag to announce does not exist in the registry

Authentication failed or credentials are missing.

  • Error kind: auth_error
SlugMeaning
credential_helper_failedThe credential helper failed to supply credentials
docker_credential_retrievalReading Docker credentials failed
forge_auth_failedThe forge rejected the request’s credentials
forge_credential_missingA forge write found no API credential to authenticate with
forge_push_access_deniedThe credential may not push to the repository
login_rejectedThe registry rejected the supplied credentials
oidc_token_rejectedThe certificate authority rejected the OIDC token
registry_auth_failedThe registry rejected the request’s authentication

A local policy or safeguard refused the operation; loosen the flag or pass —force.

  • Error kind: permission_denied
SlugMeaning
frozen_refusedThe verb discovers new digests, which frozen mode forbids
index_resolution_blockedA local policy refused resolving through the index
offline_attest_refusedAttaching was refused because offline mode is on
offline_manifest_missingOffline mode and the manifest is not stored locally
offline_modeA network operation was attempted in offline mode
offline_sign_refusedSigning was refused because offline mode is on
patch_policy_blockedA local policy refused fetching a patch descriptor
project_resolution_blockedA local policy refused resolving a binding
prune_no_indexNo index is configured to check the tags against
prune_refused_durableThe index still lists a tag prune would delete, and the tag is durable

The operation as requested is not supported or not enabled by this registry, forge or build; retrying will not help.

  • Error kind: unsupported
SlugMeaning
forge_capability_unavailableThe forge or project lacks a capability the transport needs
referrers_unsupportedThe registry supports neither the OCI Referrers API nor a referrers fallback tag
registry_delete_unsupportedThe registry does not delete tags
unsupported_key_backendA key reference names a recognised key backend this build does not implement