Documentation

Lease vs revoke and troubleshooting

What releasing a test-data request does (and never does), TTL and cleanup, request states, and how to fix denied, pending, exhausted and offline-agent situations.

Release is not revoke

  • Release (datanivra test-data release <ID>, POST /v1/test-data/requests/{test_data_request_id}/release) ends only what the request holds: its own environment lease (the isolated copy is torn down by your agent), or — for a build profile — the dataset built for that request alone. It is idempotent, so CI cleanup steps can always run. A pending request is cancelled.
  • Revoke (datanivra datasets revoke) withdraws a dataset or version for every consumer and tears down every copy. It needs dataset.revoke, is audited, and is never something a pipeline does to clean up.

Many pull requests can lease the same certified version at once; each gets its own target from the profile's pool, and releasing one never affects the others.

TTL and cleanup

A lease lapses at its TTL unless renewed; the scheduler then expires it and your agent tears the copy down, and the request becomes RELEASED. A runner that was killed mid-test therefore leaves nothing behind for longer than the TTL. Value-free lease evidence (datanivra env-leases evidence <LEASE_ID>) records the state transitions, the certificate and the teardown receipts with a SHA-256 digest.

Request states

StateMeaning
PENDING_APPROVALwaiting for a person (not the requester) to approve or reject
PROVISIONINGthe lease is hydrating, or the build is scheduled
READYthe data is in the approved target; run your tests
RELEASINGreleased; teardown in progress
RELEASEDended (released, or the lease expired)
REJECTED, CANCELLED, FAILEDended without data (see state_reason_code)

Common problems

SymptomCause and fix
403 TEST_DATA_REQUEST_DENIEDread the reason codes in details (list); stay within the profile, or ask for a new, reviewed profile version
Exit code 25, state PENDING_APPROVALa person must approve (datanivra test-data approve <ID> --reason …), or automatic approval is off (AUTOMATIC_APPROVAL_DISABLED)
409 TARGET_POOL_EXHAUSTEDevery pool target holds a live request; retry later or add targets in a new profile version
404 PROFILE_NOT_FOUND on planwrong name or version; datanivra test-data profiles lists what you may invoke
401 INVALID_CREDENTIALS from /v1/auth/workload/tokenthe CI token was refused; your administrator sees the reason in the audit trail (auth.workload.denied)
404 WORKLOAD_IDENTITY_DISABLEDthis deployment has not enabled CI workload identity; use a user session
403 WORKLOAD_SESSION_NOT_REFRESHABLEexchange a fresh CI token instead of refreshing
Stuck in PROVISIONINGthe agent may be offline or the target unreachable: check the agent's heartbeat in the console; the request ends FAILED or expires at its TTL
Exit code 28 from validatethe manifest is invalid; the output names each field path and code

Every error code is also listed in the support error codes.

← All documentation