{"record":{"id":"a532c9e9a4ed3f53","repo":"SigNoz/signoz","slug":"codeinternal","errorCode":"CodeInternal","errorMessage":"checkErr.GetMessage()","messagePattern":"checkErr\\.GetMessage\\(\\)","errorType":"error_code","errorClass":"errors.SignozError","httpStatus":500,"severity":"error","filePath":"pkg/authz/openfgaserver/server.go","lineNumber":428,"sourceCode":"\n}\n\nfunc (server *Server) getStoreIDandModelID() (string, string) {\n\tserver.mtx.RLock()\n\tdefer server.mtx.RUnlock()\n\n\tstoreID := server.storeID\n\tmodelID := server.modelID\n\n\treturn storeID, modelID\n}\n\nfunc (server *Server) getCheckError(checkErr *openfgav1.CheckError) error {\n\tswitch checkErr.GetCode().(type) {\n\tcase *openfgav1.CheckError_InputError:\n\t\treturn errors.New(errors.TypeInvalidInput, errors.CodeInvalidInput, checkErr.GetMessage())\n\tdefault:\n\t\treturn errors.New(errors.TypeInternal, errors.CodeInternal, checkErr.GetMessage())\n\t}\n}\n","sourceCodeStart":410,"sourceCodeEnd":431,"githubUrl":"https://github.com/SigNoz/signoz/blob/5069bf80b08f1f00d7e014eccc09902f9871004f/pkg/authz/openfgaserver/server.go#L410-L431","documentation":"Returned by BatchCheck when OpenFGA returns a CheckError that is not an InputError (default branch); it is surfaced as an internal error with OpenFGA's message. Indicates a server-side or unexpected failure during the check evaluation rather than bad caller input.","triggerScenarios":"Calling BatchCheck when OpenFGA returns a non-input CheckError — e.g. store/model resolution failure, server-side evaluation error, context deadline during checks.","commonSituations":"OpenFGA pointing at a deleted store or stale authorization model id; OpenFGA under heavy load timing out; version skew between the openfga client library and server.","solutions":["Check OpenFGA server logs for the evaluation failure and its store/model ids","Verify the store id and authorization model id in use are valid and current","Upgrade/align openfga client and server versions; retry transiently with backoff"],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":"err := server.BatchCheck(ctx, req)\nif err != nil {\n    if isInternalErr(err) { // TypeInternal from getCheckError\n        return retryWithBackoff(ctx, func() error { return server.BatchCheck(ctx, req) })\n    }\n    return err\n}","preventionTips":["Cache authz model id and refresh when the model is rewritten","Keep openfga client and server versions aligned","Alert on sustained BatchCheck internal errors"],"tags":["openfga","authorization","internal-error","go"],"backgroundTag":"authorization-backend-failure","analyzedSha":"5069bf80b08f1f00d7e014eccc09902f9871004f","analyzedAt":"2026-08-28T06:22:12.824Z","schemaVersion":2},"datasetVersion":"2026-08-28T11:17:15.048Z"}