Summary
Upgrading from qs@6.15.0 to qs@6.15.2 introduced a behavioral change in parse that breaks existing query string handling in Express-based applications using nested bracket group notation.
Context
The 6.15.2 changelog mentions:
[Fix] parse: handle nested bracket groups and add regression tests (#530)
While this is framed as a fix, it changes the parsed output for query strings that were previously handled differently. Applications relying on the prior behavior see regressions without any code change on their end.
Impact
In our case, query strings like:
groupBy=service&groupBy=linkedaccid&startDate=2021-08-01&...
are parsed differently between 6.15.0 and 6.15.2, causing API endpoints to receive incorrect or empty parameter values, resulting in empty responses where data is expected.
Suggestion
It would help to:
- Clearly document this as a breaking behavioral change in the changelog (not just a fix), so consumers can assess impact before upgrading.
- Consider whether the prior behavior was actually incorrect or just undocumented, as many applications may depend on it.
Environment
qs version: 6.15.0 (working) → 6.15.2 (broken)
- Used via
npm overrides in an Express.js application
- Node.js version: 24
Summary
Upgrading from
qs@6.15.0toqs@6.15.2introduced a behavioral change inparsethat breaks existing query string handling in Express-based applications using nested bracket group notation.Context
The
6.15.2changelog mentions:While this is framed as a fix, it changes the parsed output for query strings that were previously handled differently. Applications relying on the prior behavior see regressions without any code change on their end.
Impact
In our case, query strings like:
are parsed differently between
6.15.0and6.15.2, causing API endpoints to receive incorrect or empty parameter values, resulting in empty responses where data is expected.Suggestion
It would help to:
Environment
qsversion:6.15.0(working) →6.15.2(broken)npm overridesin an Express.js application