Severity: high — the flagship 4.0 first-party error-tracking package doesn't work via the documented install command.
Surfaced by: titan Phase 2.1 (Wheels 4.0 upgrade), 2026-05-15.
Repro
$ wheels packages add wheels-sentry # installs to vendor/wheels-sentry/
$ wheels start
At boot, application.sentry initialization silently fails (caught by a try/catch in the surrounding code). No Sentry events are ever emitted. No error in the application log. The package appears installed but is non-functional.
Root cause
vendor/wheels-sentry/Sentry.cfc:79 hardcodes:
local.client = new plugins.sentry.SentryClient(...);
When wheels packages add places the package at vendor/wheels-sentry/, the dotted path plugins.sentry.SentryClient does not resolve. The wheels-sentry package's box.json declares legacy CommandBox install hints (directory: \"/plugins/\", packageDirectory: \"sentry\"), meaning the package was designed for plugins/sentry/ — but wheels packages add ignores those hints and installs to the lucli-canonical vendor/<name>/.
Workaround used in titan: move the package directory by hand after add, repointing .gitignore from !plugins/SentryForWheels/ to !plugins/sentry/.
Suggested fix
One of:
- Patch
wheels-sentry's Sentry.cfc to locate SentryClient.cfc by relative file path (getDirectoryFromPath(getCurrentTemplatePath()) & \"SentryClient.cfc\" + createObject(\"component\", path)).
- Make
wheels packages add honor the package's box.json directory / packageDirectory hints so legacy-shape packages install where they expect to be.
- Auto-create a per-package Lucee mapping at install time (e.g.
/wheels-sentry → vendor/wheels-sentry/) so packages can reference their own internal components by static dotted path. Note that hyphens in dirnames also break static CFC paths — this fix would address both.
Why this matters for v4.0.1
wheels-sentry is the canonical Sentry integration for 4.0. Anyone running the documented install path gets a silently-broken Sentry client.
cc @bpamiri
Severity: high — the flagship 4.0 first-party error-tracking package doesn't work via the documented install command.
Surfaced by: titan Phase 2.1 (Wheels 4.0 upgrade), 2026-05-15.
Repro
$ wheels packages add wheels-sentry # installs to vendor/wheels-sentry/ $ wheels startAt boot,
application.sentryinitialization silently fails (caught by atry/catchin the surrounding code). No Sentry events are ever emitted. No error in the application log. The package appears installed but is non-functional.Root cause
vendor/wheels-sentry/Sentry.cfc:79hardcodes:When
wheels packages addplaces the package atvendor/wheels-sentry/, the dotted pathplugins.sentry.SentryClientdoes not resolve. Thewheels-sentrypackage'sbox.jsondeclares legacy CommandBox install hints (directory: \"/plugins/\",packageDirectory: \"sentry\"), meaning the package was designed forplugins/sentry/— butwheels packages addignores those hints and installs to the lucli-canonicalvendor/<name>/.Workaround used in titan: move the package directory by hand after
add, repointing.gitignorefrom!plugins/SentryForWheels/to!plugins/sentry/.Suggested fix
One of:
wheels-sentry's Sentry.cfc to locateSentryClient.cfcby relative file path (getDirectoryFromPath(getCurrentTemplatePath()) & \"SentryClient.cfc\"+createObject(\"component\", path)).wheels packages addhonor the package'sbox.jsondirectory/packageDirectoryhints so legacy-shape packages install where they expect to be./wheels-sentry→vendor/wheels-sentry/) so packages can reference their own internal components by static dotted path. Note that hyphens in dirnames also break static CFC paths — this fix would address both.Why this matters for v4.0.1
wheels-sentryis the canonical Sentry integration for 4.0. Anyone running the documented install path gets a silently-broken Sentry client.cc @bpamiri