PRE_RELEASE_DOCS.md
Track documentation updates that should be applied during release preparation.
Do not treat this file as final documentation. Each entry should give enough context for a maintainer or LLM to update README, docs pages, examples, migration guides, and translated docs when the release is prepared.
Do not store raw diffs or line-number-only instructions here; prefer stable section names, target files, required concepts, examples, and release-specific notes.
http: and https: URLs missing // are rejected before adapter normalization.PRE_RELEASE_CHANGELOG.md Bug Fixes, #10900, closes #7315.AxiosError with ERR_INVALID_URL for malformed HTTP(S) URLs such as https:example.com or http:/example.com instead of allowing platform URL normalization.sensitiveHeaders request config option for stripping custom secret headers from cross-origin redirects.PRE_RELEASE_CHANGELOG.md Security Fixes, #10892.docs/pages/misc/security.md; docs/pages/advanced/request-config.md; README request config section if it lists all config options; translated docs after English docs are finalized.sensitiveHeaders is an optional array of custom secret-bearing header names. Matching is case-insensitive. The Node.js HTTP adapter removes matching headers only when following a redirect to a different origin. Same-origin redirects keep these headers. If maxRedirects is 0, axios does not follow redirects and sensitiveHeaders is not used. Mention common custom authentication headers such as X-API-Key.axios.get('https://api.example.com/users', {
headers: { 'X-API-Key': 'secret' },
sensitiveHeaders: ['X-API-Key']
});
sensitiveHeaders request-config entry marked Node.js only.transitional.validateStatusUndefinedResolves for the validateStatus: undefined merge behavior.PRE_RELEASE_CHANGELOG.md Bug Fixes, #10899, closes #6688.docs/pages/advanced/request-config.md validateStatus section and request config example; translated request-config docs after English docs are finalized.validateStatus: undefined keeps legacy behavior by default and resolves every response status because transitional.validateStatusUndefinedResolves defaults to true. Explain that setting transitional.validateStatusUndefinedResolves to false makes explicit validateStatus: undefined behave like the option was omitted, so axios uses the configured/default validator and rejects non-2xx responses by default. Mention that validateStatus: null still accepts every response status, and users who disable the transitional behavior should use null or () => true when they intentionally want all statuses to resolve.axios.get('/user/12345', {
validateStatus: undefined,
transitional: {
validateStatusUndefinedResolves: false
}
});