AXIAM PHP SDK

ReactorRejection extends AxiamException
in package

FinalYes

A reactor delivery or handler answer this SDK refuses (CONTRACT.md §22.3, §22.4).

Every instance results in no reply being published, which hands the outcome to the registration's failure_policy (§22.8) — never to a synthesized allow. An SDK that answered allow on behalf of a handler that crashed would have overridden the operator's fail_closed setting from inside the library.

self::reason() is drawn from a fixed vocabulary that mirrors §22.4's rejection table, so a reactor's own metrics line up with the server's audit records. The message never carries the received or expected MAC, the signing key, or the event payload.

Table of Contents

Constants

BAD_SIGNATURE  : mixed = 'bad_signature'
The MAC is missing or wrong (§22.4 row 6).
DEADLINE_PASSED  : mixed = 'deadline_passed'
The dispatch window closed before a reply could be signed (§22.3).
HANDLER_ERROR  : mixed = 'handler_error'
The handler threw, or could not decide.
KEY_VERSION_TOO_OLD  : mixed = 'key_version_too_old'
`key_version` is below the replay-protected floor of 2 (§22.4 row 4).
MALFORMED  : mixed = 'malformed'
The body is not a decodable reactor event.
MALFORMED_MUTATION  : mixed = 'malformed_mutation'
A `mutate` answer with no patch entries (§22.4 row 10, `malformed_mutation`). There is nothing to gain by putting it on the wire.
REPLAY  : mixed = 'replay'
The nonce has already been seen inside the freshness window (§8 v2).
REQUIRE_MFA_NOT_SUPPORTED  : mixed = 'require_mfa_not_supported'
`require_mfa` was answered on an event other than `login.post_auth` (§22.4 row 7). Refused client-side rather than sent: the server would refuse it too, before even looking at the decision.
STALE  : mixed = 'stale'
`issued_at` is outside ±300 s, in either direction (§22.4 row 5).
TENANT_MISMATCH  : mixed = 'tenant_mismatch'
The event names another tenant (§22.4 row 2).
UNKNOWN_EVENT  : mixed = 'unknown_event'
The event name is outside the §22.5 registry — which is also how the §22.7 hot-path exclusion is refused, since those operations are in no registry.

Methods

__construct()  : mixed
reason()  : string
The fixed-vocabulary rejection category. Safe to log: it is a category name, not a MAC, a key or a payload.

Constants

BAD_SIGNATURE

The MAC is missing or wrong (§22.4 row 6).

public mixed BAD_SIGNATURE = 'bad_signature'

DEADLINE_PASSED

The dispatch window closed before a reply could be signed (§22.3).

public mixed DEADLINE_PASSED = 'deadline_passed'

HANDLER_ERROR

The handler threw, or could not decide.

public mixed HANDLER_ERROR = 'handler_error'

KEY_VERSION_TOO_OLD

`key_version` is below the replay-protected floor of 2 (§22.4 row 4).

public mixed KEY_VERSION_TOO_OLD = 'key_version_too_old'

MALFORMED

The body is not a decodable reactor event.

public mixed MALFORMED = 'malformed'

MALFORMED_MUTATION

A `mutate` answer with no patch entries (§22.4 row 10, `malformed_mutation`). There is nothing to gain by putting it on the wire.

public mixed MALFORMED_MUTATION = 'malformed_mutation'

REPLAY

The nonce has already been seen inside the freshness window (§8 v2).

public mixed REPLAY = 'replay'

REQUIRE_MFA_NOT_SUPPORTED

`require_mfa` was answered on an event other than `login.post_auth` (§22.4 row 7). Refused client-side rather than sent: the server would refuse it too, before even looking at the decision.

public mixed REQUIRE_MFA_NOT_SUPPORTED = 'require_mfa_not_supported'

STALE

`issued_at` is outside ±300 s, in either direction (§22.4 row 5).

public mixed STALE = 'stale'

TENANT_MISMATCH

The event names another tenant (§22.4 row 2).

public mixed TENANT_MISMATCH = 'tenant_mismatch'

UNKNOWN_EVENT

The event name is outside the §22.5 registry — which is also how the §22.7 hot-path exclusion is refused, since those operations are in no registry.

public mixed UNKNOWN_EVENT = 'unknown_event'

Methods

__construct()

public __construct(string $reason, string $message) : mixed
Parameters
$reason : string

One of the class constants above — a category, never a value from the message.

$message : string

reason()

The fixed-vocabulary rejection category. Safe to log: it is a category name, not a MAC, a key or a payload.

public reason() : string
Return values
string
On this page

Search results