Fix(middleware): Prevent double handler invocation in RouteHeaders with empty router#1045
Merged
VojtechVitek merged 1 commit intogo-chi:masterfrom Feb 5, 2026
Merged
Fix(middleware): Prevent double handler invocation in RouteHeaders with empty router#1045VojtechVitek merged 1 commit intogo-chi:masterfrom
VojtechVitek merged 1 commit intogo-chi:masterfrom
Conversation
The RouteHeaders middleware was missing a return statement after calling next.ServeHTTP when the router had no routes configured. This caused the next handler to be called twice - once in the empty check and again at the end of the function. Also adds comprehensive test coverage for the RouteHeaders middleware and Pattern matching functionality.
VojtechVitek
approved these changes
Feb 4, 2026
| if len(hr) == 0 { | ||
| // skip if no routes set | ||
| next.ServeHTTP(w, r) | ||
| return |
Contributor
There was a problem hiding this comment.
Very nice catch! Thank you!
Contributor
Author
There was a problem hiding this comment.
Happy to contribute in any way possible!
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
This PR fixes a bug in the
RouteHeadersmiddleware where an empty router(created with
RouteHeaders()but no routes added) would invoke the nexthandler twice.
Problem
In
HeaderRouter.Handler(), whenlen(hr) == 0, the code callsnext.ServeHTTP(w, r)but doesn't return, causing execution to continueand potentially call
next.ServeHTTPagain at line 102.Checklist