Skip to content

Hermetic test errors

This catalog covers stable dpone.error.v1 failures emitted by dpone test. Reports and terminal output intentionally omit row values and internal exception details.

DPONE_TEST_MANIFEST_INVALID

The test or pipeline YAML is malformed, exceeds its parser budget, contains an unknown field, or violates dpone.test.v1. Validate it against src/dpone/schema/test-manifest.schema.json and rerun dpone test.

DPONE_TEST_INPUT_NOT_FOUND

A test, pipeline, or fixture reference does not exist as a regular project file. Correct the relative path; do not create an external symlink.

DPONE_TEST_INPUT_UNAVAILABLE

An existing test, pipeline, or fixture could not be read because of permissions or a transient filesystem failure. The run stops with safety exit code 4 and does not expose the operating-system error. Restore safe read access and rerun.

DPONE_TEST_INPUT_LIMIT_EXCEEDED

A YAML authoring input exceeds the fixed 1 MiB read budget. Split the pipeline through supported folder authoring rather than increasing the test reader.

DPONE_TEST_FIXTURE_INVALID

A JSONL record is blank, not an object, invalid UTF-8/JSON, has duplicate keys, exceeds the 64-level nesting limit, contains a non-finite number, or contains an integer outside signed int64.

DPONE_TEST_FIXTURE_LIMIT_EXCEEDED

The fixture exceeds its configured bytes, rows, or line-size limit. Keep a small representative fixture and use integration or performance tests for volume behavior.

DPONE_TEST_PATH_UNSAFE

A path is absolute, traverses outside the project, contains backslashes, is a symlink, or is not a regular file. Move the input under the project and use a POSIX relative path.

DPONE_TEST_SUITE_UNAVAILABLE

The project tests directory exists but could not be enumerated under the confined filesystem policy. Check local permissions and directory health; the underlying operating-system error and path are intentionally redacted.

DPONE_TEST_SUITE_NOT_FOUND

The requested test or pipeline has no matching direct tests/*.test.yaml contract. Create the test or pass an existing test, pipeline, or project path.

DPONE_TEST_SUITE_EMPTY

The project tests/ directory contains no direct hermetic test manifests. Add a dpone.test.v1 file or select a more specific existing target.

DPONE_TEST_SUITE_LIMIT_EXCEEDED

The selected suite contains more than 100 direct test manifests. Split the CI selection into bounded project or pipeline targets.

DPONE_TEST_PIPELINE_INVALID

The primary authoring source could not be found or compiled. Run dpone check on the pipeline and resolve its structured authoring diagnostics first.

DPONE_TEST_PROCESS_AMBIGUOUS

The pipeline contains more than one process and the test does not select one. Set process to the exact compiled process name.

DPONE_TEST_PROCESS_NOT_FOUND

The selected process does not exist exactly once. Inspect the primary source and update the test's process value.

DPONE_TEST_EXECUTION_UNSUPPORTED

The selected process contains SQL, transforms, an unsupported strategy, schema evolution, quality/schema-contract policy, hooks, vendor execution options, or merge semantics outside hermetic v1. Use the connector/integration test layer; the hermetic runner does not approximate unimplemented behavior.

DPONE_TEST_DUPLICATE_KEY

An incremental-merge input or initial-target fixture repeats a unique key. Correct the fixture; v1 always uses duplicate_policy: fail.

DPONE_TEST_UNIQUE_KEY_MISSING

An incremental-merge row lacks a required non-null unique-key field. Correct the fixture or the pipeline's reviewed unique-key declaration.

DPONE_TEST_UNIQUE_KEY_INVALID

An incremental-merge unique key is an array or object. Use scalar key fields.

DPONE_TEST_TIMEOUT

Execution exceeded limits.timeout_seconds. Reduce the fixture or investigate an implementation regression. Do not raise the limit above the 300-second hard ceiling.

DPONE_TEST_INTERNAL_ERROR

An unexpected implementation failure was safely redacted. Preserve the JSON report and traceback from a trusted development environment, then report a bug.

DPONE_TEST_OUTPUT_WRITE_FAILED

The requested CI report could not be completed and atomically published. Check directory permissions and available storage, then rerun. dpone removes the temporary file and does not print the output path or operating-system error.

DPONE_TEST_OUTPUT_UNSAFE

The requested report target is an authoring input, fixture, symlink, non-regular path, or a differing existing file. Choose a new path or explicitly remove the reviewed generated artifact first. An identical text/Markdown report or semantically identical JSON report is accepted as a no-op; no existing file is replaced. The text/Markdown SHA-256 footer protects report integrity but does not establish path ownership. dpone never uses --force to bypass this protection. Report targets cannot use authoring/input suffixes .yaml, .yml, .jsonl, or .sql.

Expectation failures

DPONE_TEST_EXPECTED_ROWS_MISMATCH, DPONE_TEST_EXPECTED_REJECTED_ROWS_MISMATCH, DPONE_TEST_EXPECTED_SCHEMA_MISMATCH, and DPONE_TEST_EXPECTED_OUTPUT_MISMATCH use exit code 1: execution completed, but the observed metadata/content identity did not match the reviewed expectation. Fix the pipeline or update the expectation deliberately.