Skip to content

wheels-sentry@1.0.0 is broken when installed via 'wheels packages add' — hardcoded plugins.sentry.SentryClient path doesn't resolve in vendor/wheels-sentry/ #2705

@bpamiri

Description

@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 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:

  1. Patch wheels-sentry's Sentry.cfc to locate SentryClient.cfc by relative file path (getDirectoryFromPath(getCurrentTemplatePath()) & \"SentryClient.cfc\" + createObject(\"component\", path)).
  2. Make wheels packages add honor the package's box.json directory / packageDirectory hints so legacy-shape packages install where they expect to be.
  3. Auto-create a per-package Lucee mapping at install time (e.g. /wheels-sentryvendor/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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions