Skip to content

fix: skip comment lines when parsing _redirects file#15325

Merged
teemingc merged 1 commit intosveltejs:mainfrom
Murzav:fix/adapter-cloudflare-redirects-comments
Feb 16, 2026
Merged

fix: skip comment lines when parsing _redirects file#15325
teemingc merged 1 commit intosveltejs:mainfrom
Murzav:fix/adapter-cloudflare-redirects-comments

Conversation

@Murzav
Copy link
Contributor

@Murzav Murzav commented Feb 16, 2026

Description

parse_redirects() in adapter-cloudflare does not skip comment lines (starting with #) in the _redirects file. Per the Cloudflare documentation, lines starting with # are treated as comments.

When a _redirects file contains comments like:

# Redirects for Cloudflare Pages
/old /new 301

The # character is extracted as a pathname and added to the _routes.json exclude array, causing Cloudflare Pages deployments to fail with:

Error 8000057: Rules must start with '/'

Fix

Added a single check in parse_redirects() to skip lines where the trimmed content starts with #.

Test

Added a test case that verifies comments (both at the start of a line and indented) are properly ignored.

Closes #15324


Before submitting the PR, please make sure you do the following:

  • It's really useful if your PR references an issue where it is discussed ahead of time. In many cases, features are absent for a reason. For large changes, please create an RFC: https://github.com/sveltejs/rfcs
  • This message body should clearly illustrate what problems it solves.
  • Ideally, include a test that fails without this PR but passes with it.

Tests

  • Run the tests with pnpm test and lint the project with pnpm lint and pnpm check

Changesets

  • If your PR makes a change that should be noted in one or more packages' changelogs, generate a changeset by running pnpm changeset and following the prompts. Changesets that add features should be minor and those that fix bugs should be patch. Please prefix changeset messages with feat:, fix:, or chore:.

Edits

  • Please ensure that 'Allow edits from maintainers' is checked. PRs without this option may be closed.

Lines starting with # are treated as comments in Cloudflare's _redirects
specification, but parse_redirects() was including them as pathnames.
This caused invalid entries like "#" to appear in the generated
_routes.json exclude array, breaking Cloudflare Pages deployments with
"Error 8000057: Rules must start with '/'".

Closes sveltejs#15324
@changeset-bot
Copy link

changeset-bot bot commented Feb 16, 2026

🦋 Changeset detected

Latest commit: ad4c1f9

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@sveltejs/adapter-cloudflare Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@svelte-docs-bot
Copy link

Copy link
Member

@teemingc teemingc left a comment

Choose a reason for hiding this comment

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

Thank you!

@teemingc teemingc merged commit 5ce9c84 into sveltejs:main Feb 16, 2026
24 of 25 checks passed
@github-actions github-actions bot mentioned this pull request Feb 16, 2026
elliott-with-the-longest-name-on-github pushed a commit that referenced this pull request Feb 18, 2026
This PR was opened by the [Changesets
release](https://github.com/changesets/action) GitHub action. When
you're ready to do a release, you can merge this and the packages will
be published to npm automatically. If you're not ready to do a release
yet, that's fine, whenever you add more changesets to main, this PR will
be updated.


# Releases
## @sveltejs/adapter-cloudflare@7.2.8

### Patch Changes

- fix: skip comment lines in `_redirects` file
([#15325](#15325))

- Updated dependencies
\[[`e87efba`](e87efba),
[`71ddbc7`](71ddbc7),
[`1bae374`](1bae374),
[`20dfadf`](20dfadf),
[`8c2384a`](8c2384a)]:
    -   @sveltejs/kit@2.52.1

## @sveltejs/adapter-netlify@6.0.1

### Patch Changes

- fix: export Netlify config directly from the instrumented serverless
function ([#15335](#15335))

- Updated dependencies
\[[`e87efba`](e87efba),
[`71ddbc7`](71ddbc7),
[`1bae374`](1bae374),
[`20dfadf`](20dfadf),
[`8c2384a`](8c2384a)]:
    -   @sveltejs/kit@2.52.1

## @sveltejs/kit@2.52.1

### Patch Changes

- fix: clear stale preflight issues on subsequent valid form submissions
([#15281](#15281))


- chore: remove dependency on `sade`
([#15272](#15272))


- fix: include `.txt` files in precompression
([#15259](#15259))


- fix: escape backticks and dollar signs when creating inlined css
([#15320](#15320))


- fix: increment `form.pending` count before preflight validation
([#15279](#15279))

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@github-actions github-actions bot mentioned this pull request Feb 18, 2026
Copilot AI pushed a commit to Stadly/kit that referenced this pull request Mar 6, 2026
## Description

`parse_redirects()` in `adapter-cloudflare` does not skip comment lines
(starting with `#`) in the `_redirects` file. Per the [Cloudflare
documentation](https://developers.cloudflare.com/pages/configuration/redirects/),
lines starting with `#` are treated as comments.

When a `_redirects` file contains comments like:

```
# Redirects for Cloudflare Pages
/old /new 301
```

The `#` character is extracted as a pathname and added to the
`_routes.json` exclude array, causing Cloudflare Pages deployments to
fail with:

```
Error 8000057: Rules must start with '/'
```

## Fix

Added a single check in `parse_redirects()` to skip lines where the
trimmed content starts with `#`.

## Test

Added a test case that verifies comments (both at the start of a line
and indented) are properly ignored.

Closes sveltejs#15324

---

### Before submitting the PR, please make sure you do the following:

- [x] It's really useful if your PR references an issue where it is
discussed ahead of time. In many cases, features are absent for a
reason. For large changes, please create an RFC:
https://github.com/sveltejs/rfcs
- [x] This message body should clearly illustrate what problems it
solves.
- [x] Ideally, include a test that fails without this PR but passes with
it.

### Tests

- [x] Run the tests with `pnpm test` and lint the project with `pnpm
lint` and `pnpm check`

### Changesets

- [x] If your PR makes a change that should be noted in one or more
packages' changelogs, generate a changeset by running `pnpm changeset`
and following the prompts. Changesets that add features should be
`minor` and those that fix bugs should be `patch`. Please prefix
changeset messages with `feat:`, `fix:`, or `chore:`.

### Edits

- [x] Please ensure that 'Allow edits from maintainers' is checked. PRs
without this option may be closed.

Co-authored-by: murzav <v.murzak@academyocean.com>
Copilot AI pushed a commit to Stadly/kit that referenced this pull request Mar 6, 2026
This PR was opened by the [Changesets
release](https://github.com/changesets/action) GitHub action. When
you're ready to do a release, you can merge this and the packages will
be published to npm automatically. If you're not ready to do a release
yet, that's fine, whenever you add more changesets to main, this PR will
be updated.


# Releases
## @sveltejs/adapter-cloudflare@7.2.8

### Patch Changes

- fix: skip comment lines in `_redirects` file
([sveltejs#15325](sveltejs#15325))

- Updated dependencies
\[[`e87efba`](sveltejs@e87efba),
[`71ddbc7`](sveltejs@71ddbc7),
[`1bae374`](sveltejs@1bae374),
[`20dfadf`](sveltejs@20dfadf),
[`8c2384a`](sveltejs@8c2384a)]:
    -   @sveltejs/kit@2.52.1

## @sveltejs/adapter-netlify@6.0.1

### Patch Changes

- fix: export Netlify config directly from the instrumented serverless
function ([sveltejs#15335](sveltejs#15335))

- Updated dependencies
\[[`e87efba`](sveltejs@e87efba),
[`71ddbc7`](sveltejs@71ddbc7),
[`1bae374`](sveltejs@1bae374),
[`20dfadf`](sveltejs@20dfadf),
[`8c2384a`](sveltejs@8c2384a)]:
    -   @sveltejs/kit@2.52.1

## @sveltejs/kit@2.52.1

### Patch Changes

- fix: clear stale preflight issues on subsequent valid form submissions
([sveltejs#15281](sveltejs#15281))


- chore: remove dependency on `sade`
([sveltejs#15272](sveltejs#15272))


- fix: include `.txt` files in precompression
([sveltejs#15259](sveltejs#15259))


- fix: escape backticks and dollar signs when creating inlined css
([sveltejs#15320](sveltejs#15320))


- fix: increment `form.pending` count before preflight validation
([sveltejs#15279](sveltejs#15279))

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

adapter-cloudflare: parse_redirects does not skip comment lines, breaking _routes.json

2 participants