Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/build/resolveOpenAPI.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import {DeRefedOpenAPI} from './open-api/types';

// SENTRY_API_SCHEMA_SHA is used in the sentry-docs GHA workflow in getsentry/sentry-api-schema.
// DO NOT change variable name unless you change it in the sentry-docs GHA workflow in getsentry/sentry-api-schema.
const SENTRY_API_SCHEMA_SHA = '42495fc378961e27521a842bf9e6e10e9f864d72';
const SENTRY_API_SCHEMA_SHA = 'ffc843e486c3b5984ff90759343e419e76d92b7e';
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: The fetch call in resolveOpenAPI lacks error handling. It doesn't check if the response is successful before attempting to parse it as JSON, which will crash on HTTP errors.
Severity: HIGH

Suggested Fix

Before calling await response.json(), add a check to ensure the response was successful, for example: if (!response.ok) { throw new Error(Failed to fetch OpenAPI schema: ${response.statusText}); }. Consider wrapping the fetch operation in a try...catch block to handle network failures and other unexpected errors gracefully.

Prompt for AI Agent
Review the code at the location below. A potential bug has been identified by an AI
agent.
Verify if this is a real issue. If it is, propose a fix; if not, explain why it's not
valid.

Location: src/build/resolveOpenAPI.ts#L11

Potential issue: The `resolveOpenAPI` function fetches a JSON file from a GitHub URL but
does not validate the HTTP response. If the request fails (e.g., a 404 Not Found or a
5xx server error), the code attempts to parse the response body as JSON. In the case of
a 404 error, GitHub returns an HTML page, causing `response.json()` to throw an
unhandled `SyntaxError`. Since this function is called during the static site generation
and at runtime, this unhandled exception will crash the build process or the running
application, making the documentation site unavailable.

Did we get this right? 👍 / 👎 to inform future reviews.


const activeEnv = process.env.GATSBY_ENV || process.env.NODE_ENV || 'development';

Expand Down
Loading