SigNoz/signoz · critical
ErrCodeAuthZUnavailable
ErrCodeAuthZUnavailable
Error message
failed to read tuples from authorization server
What it means
Thrown by SigNoz's OpenFGA authorization server wrapper when the embedded openfgaServer.Read RPC (listing relationship tuples, with pagination via continuation tokens) fails. It wraps the gRPC error with ErrCodeAuthZUnavailable, signaling the authorization backend is not usable right now.
Source
Thrown at pkg/authz/openfgaserver/server.go:299
return err
}
return nil
}
func (server *Server) ReadTuples(ctx context.Context, tupleKey *openfgav1.ReadRequestTupleKey) ([]*openfgav1.TupleKey, error) {
storeID, _ := server.getStoreIDandModelID()
var tuples []*openfgav1.TupleKey
continuationToken := ""
for {
response, err := server.openfgaServer.Read(ctx, &openfgav1.ReadRequest{
StoreId: storeID,
TupleKey: tupleKey,
ContinuationToken: continuationToken,
})
if err != nil {
return nil, errors.Wrapf(err, errors.TypeInternal, authtypes.ErrCodeAuthZUnavailable, "failed to read tuples from authorization server")
}
for _, tuple := range response.Tuples {
tuples = append(tuples, tuple.Key)
}
if response.ContinuationToken == "" {
break
}
continuationToken = response.ContinuationToken
}
return tuples, nil
}
func (server *Server) ListObjects(ctx context.Context, subject string, relation authtypes.Relation, objectType coretypes.Type) ([]*coretypes.Object, error) {
storeID, modelID := server.getStoreIDandModelID()
response, err := server.openfgaServer.ListObjects(ctx, &openfgav1.ListObjectsRequest{View on GitHub (pinned to 5069bf80b0)
Solutions
- Check OpenFGA server logs and its datastore connectivity (DB up, migrations applied)
- Verify the store ID being passed corresponds to an existing OpenFGA store (getOrCreateStore succeeded)
- Increase the context timeout/deadline for large tuple reads
- Restart the OpenFGA component; if persistent, recreate the store and re-sync tuples
Defensive patterns
Strategy: retry
Try / catch
tuples, err := server.ReadTuples(ctx, storeID, tupleKey, token)
if err != nil {
if errors.Is(err, authtypes.ErrCodeAuthZUnavailable) { backoff.Retry(...) }
} Prevention
- Health-check the OpenFGA datastore before serving auth traffic
- Pin compatible OpenFGA client/server versions
- Pass cancellable contexts with deadlines for paginated reads
When it happens
Trigger: Calling ReadTuples while iterating pages with a continuation token and the OpenFGA storage (Postgres/MySQL) is down, the store ID is invalid, the request context times out, or the authorization model/tuple keys are malformed.
Common situations: OpenFGA datastore misconfiguration (bad DSN, wrong store ID); OpenFGA container crash-looping in the SigNoz deployment; large tuple sets exceeding request deadlines; version mismatch between the embedded OpenFGA server and the client proto.
Related errors
AI-assisted analysis of SigNoz/signoz@5069bf80b0 (2026-08-28).
Data as JSON: /api/errors/4eaec0619008cee6.
Report an issue: GitHub.