﻿# TX_NO_STATE — transaction has no state record

The two-phase commit coordinator tracks per-transaction state (prepared, committed, aborted). This error is returned when a commit or abort instruction re…

<em>cyoda-go version <a href="https://github.com/Cyoda-platform/cyoda-go/releases/tag/v0.6.2">0.6.2</a></em>

# errors.TX_NO_STATE

## NAME

TX_NO_STATE — the transaction coordinator cannot find a state record for the given transaction ID.

## SYNOPSIS

HTTP: `404` `Not Found`. Retryable: `no`.

## DESCRIPTION

The two-phase commit coordinator tracks per-transaction state (prepared, committed, aborted). This error is returned when a commit or abort instruction references a transaction for which no state record exists, because the transaction was never prepared or was already cleaned up.

Not retryable. `prepare` must be called before `commit` or `abort`. The coordinator's state retention configuration determines how long state records are kept.

## SEE ALSO

- errors
- errors.TX_REQUIRED
- errors.TX_COORDINATOR_NOT_CONFIGURED
- errors.TRANSACTION_NOT_FOUND

## See also

- [`cyoda help errors`](/help/errors/) — Every error response from the Cyoda REST API carries a structured `errorCode` in the `properties` object. Multiple codes may share the same HTTP status. Programmatic handling keys on `errorCode`, not HTTP status.
- [`cyoda help errors TX_REQUIRED`](/help/errors/tx_required/) — Certain write operations that require atomic multi-step coordination mandate a transaction context. Returned when such an operation is called without a `transactionId` header or query parameter.
- [`cyoda help errors TX_COORDINATOR_NOT_CONFIGURED`](/help/errors/tx_coordinator_not_configured/) — Certain operations that span multiple storage shards require a distributed transaction coordinator. This error is returned when such an operation is attempted on a node where the coordinator component is disabled or misconfigured.
- [`cyoda help errors TRANSACTION_NOT_FOUND`](/help/errors/transaction_not_found/) — The transaction ID supplied in the request does not correspond to an active transaction. The transaction may have been committed, rolled back, expired, or may never have existed. Also occurs when a request is mis-routed to a node that never opened the transaction.

## Raw formats

- [`/help/errors/tx_no_state.json`](/help/errors/tx_no_state.json) — full descriptor (matches `GET /help/{topic}` envelope)
- [`/help/errors/tx_no_state.md`](/help/errors/tx_no_state.md) — body only