Question
Closed · Answered

How can I distinguish an authentication problem from a permissions problem?

Hovhannes Vktarget

When an external tool cannot read a Busabase record, what should I check first to determine whether its credentials are invalid, its access is insufficient, or the requested record does not exist? Which response details are useful for troubleshooting without repeatedly replacing credentials?

Report
Kelly
Team

Thanks for asking. When an external tool cannot read a Busabase record, read the HTTP status and error code first — do not rotate the API key on every failure. Auth problems, permission problems, and “missing record” look different.

*Diagram · API error triage*

What each outcome usually means

ResponseLikely causeWhat to do
401 UnauthorizedKey invalid, expired, deleted, or the owner account is suspendedFix or recreate the key; check expiry in Space settings → API keys
403 ForbiddenKey is accepted, but its permission level is too low for the call, or the key’s owner has no access to that Space / resourceRaise the key level, grant Space access, or use a key that already can read there
404 Not foundCredentials work, but this Base / record id is wrong or not in the Space you are callingConfirm Space, Base, and record id; try a known-good list/read first

Official matrix: API keys.

Practical troubleshooting order

  1. Capture status + code / message from the response body (log them; do not only screenshot the client UI).
  2. With the same key, call a cheap known-good read (for example list Bases you expect to see).
  • If that already returns 401 → stop and fix credentials.
  • If that works but the target record returns 403 → permissions / membership, not “bad key”.
  • If that works but the target returns 404 → identity / wrong Space, not credentials.
  1. Only replace the key when you have a clear 401 (or you know the old key was revoked).

Boundaries

  • A read-level key can authenticate and still get 403 on write/merge — that is expected, not a broken key.
  • “Record does not exist” and “you may not see it” can both feel empty in a UI; trust the status code, not only the empty screen.
  • Avoid embedding keys in shared logs; log status/code only.

If you paste one anonymized status + code (no key), we can narrow which of the three branches you are on.

Report

Your reply

Sign in to join the discussion. Reading is always open; you only need an account to post.

Sign in