koala73/worldmonitor · error
Generated internal probe filters incorrectly cover public…
Error message
Generated internal probe filters incorrectly cover public function(s): ${collisions.join(', ')}. Deploy-skew visibility for removed public names would be lost. What it means
assertPublicFunctionsRemainVisible checks that the generated internal-probe filter patterns do not match any still-public Convex function names. If a generated 'missing public function' pattern would collide with an actual public function, the script throws because deploy-skew probes for that removed name would hide errors from a function that still exists.
Solutions
- Regenerate the filter list with `npm run generate:sentry-convex-probe-filters` so removed-function patterns reflect current code.
- Rename the newly added public function to something that doesn't collide with a removed-name pattern.
- Remove the stale removed-function entry if the function has actually been restored to public visibility.
Example fix
// before (stale generated entry claims myModule:oldName was removed, but it is public again) // after // rm the stale removed-public-function record or rename the function, then: // npm run generate:sentry-convex-probe-filters && npm run check:sentry-convex-probe-filters
Defensive patterns
Strategy: validation
Validate before calling
// before applying, regenerate and diff // npm run generate:sentry-convex-probe-filters && git diff --exit-code <generated-list>
Prevention
- Regenerate the filter list in the same PR that renames or re-adds public Convex functions.
- Never reuse a removed public function's old name without regenerating.
- Treat the generated file as build output; never hand-edit it.
When it happens
Trigger: The generated pattern list (from convexMissingPublicFunctionPattern for removed/renamed public functions) contains a pattern identical to one for a moduleRef:name entry that is currently still public — typically after renaming a function back or re-adding a name that was previously removed.
Common situations: A Convex public function was renamed, then an engineer reused the old name (or reverted a rename) while the stale generated probe-filter list was still committed; running the sync script or its check mode detects the collision.
Understand the failure class
Background: "This is a bug, please report it": internal invariant violations, unreachable panics, and SNH errors explained — this error's family across 47 libraries.
Related errors
- Merge dropped protected filter
- classify-eval: is interpolated; the eval can only read a…
- COMPANY_MONITORING_ADMISSION_EVIDENCE_INVALID
- Expected an array of Sentry issues. A Sentry error body is…
- GET failed: HTTP ` : ''}
AI-assisted analysis of koala73/worldmonitor@e586b8b4b8 (2026-09-22).
Data as JSON: /api/errors/78c7c6a98087bc6a.
Report an issue: GitHub.
Appendix: source
Thrown at scripts/sync-sentry-convex-probe-filters.mjs:179
/**
* Assert the safety half of the invariant: no *public* Convex function name
* is covered by the generated internal filter set. A removed/renamed public
* call must still report (deploy-skew visibility).
*
* @param {string} convexRoot
* @param {string[]} internalPatterns
*/
export function assertPublicFunctionsRemainVisible(convexRoot, internalPatterns) {
const patternSet = new Set(internalPatterns);
const collisions = [];
for (const entry of listPublicConvexFunctionExports(convexRoot)) {
const pattern = convexMissingPublicFunctionPattern(entry.moduleRef, entry.name);
if (patternSet.has(pattern)) {
collisions.push(`${entry.moduleRef}:${entry.name}`);
}
}
if (collisions.length > 0) {
throw new Error(
'Generated internal probe filters incorrectly cover public function(s): '
+ `${collisions.join(', ')}. Deploy-skew visibility for removed public `
+ 'names would be lost.',
);
}
}
/**
* @param {string[]} patterns
* @returns {string}
*/
export function formatCommittedFilterList(patterns) {
const header = [
'# Generated by scripts/sync-sentry-convex-probe-filters.mjs --write',
'# Do not edit by hand. Source of truth: convex/ internal{Query,Mutation,Action} exports.',
'# Each line is a Sentry filters:error_messages glob for case-1 Convex probe noise.',
'# Public function names are intentionally absent — deploy-skew must still report.',
'#',View on GitHub (pinned to e586b8b4b8)