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
Repair against the current GitHub REST API contract, then keep the change narrow and source-backed.
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.
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.
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: