NexusInitException | CreateAsync() | The initial sync failed for any reason. InnerException carries the underlying cause (often NexusUnauthorizedException or a transport-level HttpRequestException). |
NexusUnauthorizedException | CreateAsync(), SyncAsync() | Server returned HTTP 401 - invalid API key, slug/key mismatch, or revoked key. |
NexusBillingException (v0.2.0) | CreateAsync(), SyncAsync() | Server returned HTTP 402 - tenant has invoices overdue by more than 14 days. The SDK throttles the background refresh to one attempt every five minutes and serves the last cached snapshot; any success clears it, a 304 Not Modified included, so settling the invoice restores service without a restart. Check client.BillingOverdue on the client. |
NexusConfigException (v0.14.0) | CreateAsync() | A configuration value cannot be meant - a non-positive Ttl, StreamIdleTimeout, StreamConnectTimeout or PooledConnectionLifetime, an empty SseReconnectCooldown, or a schedule entry below one minute. Option carries the offending property name; the message names the index for a schedule entry. Pass null to select a default. |
NexusNotFoundException | CreateAsync(), SyncAsync() | Server returned HTTP 404 - unknown subdomain or missing endpoint. |
NexusRateLimitedException (v0.5.0) | SetSecretAsync(), DeleteSecretAsync(), DeleteSecretVersionAsync() | Server returned HTTP 429 - write rate limit exceeded on secret modification endpoints. |
NexusPublicKeyException | GetSecret(), SetSecretAsync(), DeleteSecretAsync(), DeleteSecretVersionAsync() | The client was created with a public key, or the backend reports the key as public. |
NexusServiceKindMismatchException (v0.2.0) | GetSecret() | The service kind reported by the server is "frontend". Frontend services must not hold secrets, regardless of key type. |
NexusSecretNotFoundException | GetSecret() | The requested key is not in the cache. The exception’s SecretKey property carries the key that was requested. |
NexusWifNotConfiguredException (v0.2.0) | CreateAsync() | Wif.Enabled = true but no usable workload-identity provider matched the running environment. Wrapped in NexusInitException on the initial connect. |
NexusWifTokenExchangeFailedException (v0.2.0) | CreateAsync(), SyncAsync() | POST /v1/auth/token-exchange returned a non-2xx response. Wrapped in NexusInitException on the initial connect. |
NexusSessionExpiredException (v0.2.0) | SyncAsync() | The WIF session JWT has expired and the SDK could not refresh it. |
NexusAbAddonNotAvailableException (v0.3.0) | EvaluateABAsync() | Server returned HTTP 403 - the AB Testing add-on is not active for this tenant. |
NexusQuarantinedException (v0.4.0) | CreateAsync(), SyncAsync() | Server returned HTTP 429 with a {"error":"quarantined"} body. Reason carries the server’s reason string and ExpiresAt the timestamp sync resumes at; the SDK also suppresses sync and fires IStreamObserver.OnQuarantined until then. |
NexusApiException | SyncAsync(), the SSE stream, EvaluateABAsync() | An unexpected/unmapped HTTP status, or a response body that could not be decoded. |