Versioned API schema
GitHub REST API repository contents submodule type file backwards compatibility will be submodule
A sync tool attempts to download a submodule entry as a blob after the response type changes.
Agent Quick Fix
Several historical response shapes are locally plausible; only the selected current API version determines fields, enums, media types, and status codes.
Product: GitHub REST API
Current-contract area: Repository contents parser misclassifies submodule as file
Likely root cause: A sync tool attempts to download a submodule entry as a blob after the response type changes.
Repair direction: Verifier exercises the changed field/status/enum plus an unaffected endpoint to prevent a brittle one-off patch. Exercise strict and permissive parsing plus one downstream behavior tied to the changed field.
Validation Status
Codex searched organically in the validation run. No no-web counterfactual is attached to this page yet.
Symptom
A sync tool attempts to download a submodule entry as a blob after the response type changes.
Why This Happens
Several historical response shapes are locally plausible; only the selected current API version determines fields, enums, media types, and status codes.
Verification
Verifier exercises the changed field/status/enum plus an unaffected endpoint to prevent a brittle one-off patch. Exercise strict and permissive parsing plus one downstream behavior tied to the changed field.
Common Wrong Fixes
- Changing local code without checking the current external contract.
- Retrying the same install, build, or API call with no version/source change.
- Applying a broad unsafe bypass when a narrow compatibility fix is available.
Codex Search Keywords
These are the search terms observed in a neutral Codex validation run for this failure shape.
GitHub REST API repository contents submodule type file backwards compatibility will be submodule
site:docs.github.com REST API contents submodule type file submodule
https://docs.github.com/en/rest/repos/contents?apiVersion=2022-11-28
Source Trail
GitHub source file/reference: