chroma-core/chroma · error · ChromaValueError

transactional read token changed from log upper bound offset

Error message

transactional read token changed from log upper bound offset ${expectedReadToken} to ${actualReadToken}

What it means

Error "transactional read token changed from log upper bound offset ${expectedReadToken} to ${actualReadToken}" thrown in chroma-core/chroma.

Source

Thrown at clients/new-js/packages/chromadb/src/collection.ts:1640

    }
  }

  private validateReadToken(
    expectedReadToken: number | null,
    actualReadToken: number | null | undefined,
  ): void {
    if (actualReadToken === null || actualReadToken === undefined) {
      throw new ChromaValueError(
        "transactional get response did not include an OCC read token",
      );
    }
    if (!Number.isSafeInteger(actualReadToken) || actualReadToken < 0) {
      throw new ChromaValueError(
        `transactional read token offset ${actualReadToken} is not a safe integer`,
      );
    }
    if (expectedReadToken !== null && expectedReadToken !== actualReadToken) {
      throw new ChromaValueError(
        "transactional read token changed from log upper bound offset " +
          `${expectedReadToken} to ${actualReadToken}`,
      );
    }
    if (this.readToken !== null && this.readToken !== actualReadToken) {
      throw new ChromaValueError(
        "transactional read token changed from log upper bound offset " +
          `${this.readToken} to ${actualReadToken}`,
      );
    }
  }

  private bufferWrite(
    operation: "add",
    ids: string[],
    payload: AddCollectionRecordsPayload,
  ): void;
  private bufferWrite(

View on GitHub (pinned to aecdd12c8a)

When it happens

Trigger: Thrown at clients/new-js/packages/chromadb/src/collection.ts:1640 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of chroma-core/chroma@aecdd12c8a (2026-08-16). Data as JSON: /api/errors/65e912ae09e18e33. Report an issue: GitHub.