Skip to content

docs(typed-policies): a store read failure is 503 storage_unavailable - #266

Merged
saurabhjain1592 merged 1 commit into
mainfrom
docs/3746-4255-storage-unavailable
Sep 14, 2026
Merged

saurabhjain1592 merged 1 commit into
mainfrom
docs/3746-4255-storage-unavailable

Conversation

@saurabhjain1592

Copy link
Copy Markdown
Member

Summary

A v11.0.0 platform answers a document store it cannot read with 503 storage_unavailable, not nothing_active (getaxonflow/axonflow-enterprise#4255, closed by getaxonflow/axonflow-enterprise#4266; platform/orchestrator/typed_authoring_route.go:979 at axonflow-enterprise main 8a1e2d312). This SDK's docs still said the platform answers nothing_active for a store read failure. This change says what a v11.0.0 platform does, in the places #265 lists, pins it with a unit test, and keeps one accurate line for a stack built before the change:

  • active()'s docstring (axonflow/typed_policies.py, the same three lines, so the line-keyed falsey-clobber baseline does not move), the README's active() bullet and the CHANGELOG entry (in [Unreleased]): a 503 storage_unavailable from active() raises TypedPolicyRefusal, citing getaxonflow/axonflow-enterprise#4255.
  • TestTheRefusals::test_every_documented_refusal_is_typed gains active-503-storage-unavailable: active()'s 503 storage_unavailable is a TypedPolicyRefusal carrying that status and reason.
  • runtime-e2e/v11_examples/README.md: "And on a stack built before getaxonflow/axonflow-enterprise#4255, an unreadable document store also answers nothing_active."

active() already raised every answer other than 404 nothing_active as a typed refusal, so there is no code change: no behaviour change; nothing a stack could observe moved, and there is no live leg. The TypeScript SDK carries the same change (getaxonflow/axonflow-sdk-typescript#290), and so does the Java SDK (getaxonflow/axonflow-sdk-java#248).

Closes #265
Part of getaxonflow/axonflow-enterprise#3746

Local round

Every step at the head fd7f4fc, each under its own build-slot ticket, in a Python 3.11 virtual environment with the SDK installed editable from this tree (checked before the round), mirroring sdk-python's required contexts; before each step the round checks that the head is unchanged and the tree clean.

Step Command rc
lint ruff check . and ruff format --check . 0
types mypy axonflow (strict) 0
falsey-clobber scripts/lint_no_falsey_clobber.py axonflow/ --baseline .lint_baselines/falsey_clobber.json (the docstring keeps its line count, so the line-keyed baseline does not move) 0
AuthZEN types scripts/gen_authzen_types.py --check 0
test pytest: 1616 passed, 30 skipped; coverage 85.80% against the configured 75% 0
no mocks scripts/lint-no-mocks-in-runtime-e2e.sh 0
wire shape pytest tests/test_wire_shape.py -m wire_shape against tests/fixtures/openapi 0
examples py_compile and import of both examples 0

The new row ran by name: PASSED tests/test_typed_policies.py::TestTheRefusals::test_every_documented_refusal_is_typed[active-503-storage-unavailable].

CI notes

The board at the head is read by name once it completes; this section is filled in then.

A v11.0.0 platform answers a document store it cannot read with 503
storage_unavailable, not nothing_active
(getaxonflow/axonflow-enterprise#4255, closed by
getaxonflow/axonflow-enterprise#4266). The active() docstring, the
README and the CHANGELOG say so, and the refusal table gains the row
that a 503 storage_unavailable from active() is a TypedPolicyRefusal
carrying that status and reason. The v11_examples README keeps the line
for a stack built before the change.

Closes #265

Signed-off-by: Saurabh Jain <saurabh.jain@getaxonflow.com>
@saurabhjain1592
saurabhjain1592 merged commit d1405fd into main Sep 14, 2026
16 checks passed
@saurabhjain1592
saurabhjain1592 deleted the docs/3746-4255-storage-unavailable branch September 14, 2026 07:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

docs(typed-policies): the #4255 caveat on the active read is stale

1 participant