fix(core): allow Next.js route groups and dynamic segments in workflow names (#4070)
A workflow name is derived from the module path it is defined in, so Next.js
App Router conventions end up in the name verbatim. `SAFE_WORKFLOW_NAME_PATTERN`
permitted alphanumerics, `_`, `-`, `.`, `/` and `@`, but not parentheses or
square brackets. Any workflow inside a route group (`app/(dashboard)/...`) or a
dynamic segment (`app/[teamId]/...`, `app/[...slug]/...`) threw
Invalid workflow name "workflow//./app/(group)/workflows/": must only
contain alphanumeric characters, ...
before it could be enqueued, and the generated name cannot be overridden.
The pattern exists to keep unsafe characters out of the queue name it is
interpolated into. These four are inert there: `ValidQueueName` accepts any
suffix after its prefix, and the only other consumers of the name are OpenTelemetry
span names. It is never placed in a URL or a SQL identifier.
Fixes #3991
Signed-off-by: Matias Torsello <23641125+torsello@users.noreply.github.com>
Co-authored-by: Matias Torsello <23641125+torsello@users.noreply.github.com>
Co-authored-by: Pranay Prakash <pranay.gp@gmail.com> M
Matias Torsello committed
d427c47e897dd91583ad37b96ffdcb97199c06c8
Parent: fe8b27d
Committed by GitHub <noreply@github.com>
on 9/12/2026, 4:54:49 AM