GeezerVison is showing github.com — fix(credentials): match JSON 403s case-insensitively and refuse a malformed ZoomInfo access token by waleedlatif1 · Pull Request #9914 · simstudioai/sim
Conversation
Summary
isVendorJsonForbidden lowercases Content-Type before matching, because media types are case-insensitive. Before, a vendor 403 sent as Application/JSON was treated as a firewall page, so a live key that only lacked a scope was rejected. This covers HubSpot and every forbiddenMeansScoped token check.
requestZoomInfoToken now requires access_token to be a non-blank string. A blank or non-string token used to be cached and sent as a Bearer token. The saved-credential minter and the legacy inline ZoomInfo path both call this function, so both are covered. The expires_in fallback is unchanged.
Type of Change
Testing
- New cases: a mixed-case JSON 403 in
hubspot.test.ts, and blank and non-string access_token in zoominfo/client.test.ts. All of them fail on the pre-fix code and pass after.
- 24 test files and 253 tests pass across token-service-accounts,
lib/internal/zoominfo and the ZoomInfo minter.
bun run lint, check:test-patterns, check:comment-hygiene, check:utils and check:explicit-any pass, and so does the type-check in the pre-push hook.
Checklist
- Code follows project style guidelines
- Self-reviewed my changes
- Tests added/updated and passing (new tests pass the
test-audit authoring gate)
- No new warnings introduced
- I confirm that I have read and agree to the terms outlined in the Contributor License Agreement (CLA)
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
greptile-apps[bot] reacted with thumbs up emoji
…formed ZoomInfo access token
- isVendorJsonForbidden lowercases Content-Type before matching, since media
types are case-insensitive; a vendor 403 sent as Application/JSON no longer
rejects a live key that only lacks a scope.
- requestZoomInfoToken requires a non-blank string access_token, so the
saved-credential minter and the legacy inline path never cache or send a
malformed token.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
1 Skipped Deployment
| Project |
Deployment |
Actions |
Updated |
docs |
Skipped |
|
Nov 12, 2026 12:42am UTC |

|
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No issues found across 4 files
Confidence score: 5/5
- Automated review surfaced no issues in the provided summaries.
- No files require special attention.
Turn on auto-fix | Re-trigger cubic
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
 Confidence Score: 5/5
[Medium impact] This PR appears safe to merge.
Summary
This PR fixes two credential checks:
- Credential checks recognize mixed-case JSON 403 replies.
- ZoomInfo rejects blank or non-string access tokens.
No actionable issues found. Tests were reviewed but not run.
Reviews (1) · Last reviewed commit: "fix(credentials): match JSON 403s case-i..." · Reviewed by Greptile
|
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
This branch was previously deployed
1 inactive
deployment
Uh oh!
There was an error while loading. Please reload this page.
Assignees
No one assigned
Milestone
No milestone
Development
Successfully merging this pull request may close these issues.
Uh oh!
There was an error while loading. Please reload this page.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
|