You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Apr 16, 2026. It is now read-only.
Summary
Several critical error paths in the service layer silently discard errors. Other errors are returned without context, making debugging difficult.
Specific instances
internal/app/service.go:772—_ = s.repo.SaveSession(ctx, session)when expiring a session — if this fails, the session stays activeinternal/app/service.go:301—_ = s.repo.SaveApproval(ctx, approval)when expiring an approval — if this fails, the approval can still be usedinternal/app/service.go:483— deferred cleanup in proxy execution ignores errors from budget releasereturn errinstead ofreturn fmt.Errorf("approve grant %s: %w", grantID, err)Required work
_ =assignment in the service layer — log the error and decide whether to return it or continue with best-effortfmt.Errorfwrapping at every error boundary with operation context (which method, which entity ID)Files
internal/app/service.go— primary targetinternal/app/cleanup.go— cleanup error handlingPriority
Medium — silent failures in a security system are dangerous.
🤖 Generated with Claude Code