paperclipai/paperclip · error · Error

Plugin telemetry event names must be lowercase slugs using l

Error message

Plugin telemetry event names must be lowercase slugs using letters, numbers, "_" or "-".

What it means

The plugin telemetry track() call used an eventName that is not a lowercase slug of letters, numbers, underscores or hyphens. The host validates event names before emitting telemetry so only well-formed names reach the telemetry pipeline.

Source

Thrown at server/src/services/plugin-host-services.ts:1651

          pluginId,
          companyId: params.companyId ?? null,
          level: "metric",
          message: safeName,
          meta: sanitiseMeta({ value: params.value, tags: params.tags ?? null }),
        });
        if (_logBuffer.length >= LOG_BUFFER_FLUSH_SIZE) {
          flushPluginLogBuffer().catch((err) => {
            console.error("[plugin-host-services] Triggered metric flush failed:", err);
          });
        }
      },
    },

    telemetry: {
      async track(params) {
        const eventName = String(params.eventName ?? "").trim();
        if (!TELEMETRY_EVENT_NAME_REGEX.test(eventName)) {
          throw new Error(
            'Plugin telemetry event names must be lowercase slugs using letters, numbers, "_" or "-".',
          );
        }
        const telemetryClient = getTelemetryClient();
        if (!telemetryClient) return;
        telemetryClient.trackDynamic(`plugin.${pluginKey}.${eventName}`, params.dimensions);
      },
    },

    logger: {
      async log(params) {
        const { level, meta } = params;
        const safeMessage = truncStr(String(params.message ?? ""), MAX_LOG_MESSAGE_LENGTH);
        const safeMeta = sanitiseMeta(meta);
        const pluginLogger = logger.child({ service: "plugin-worker", pluginId });
        const logFields = {
          ...safeMeta,
          pluginLogLevel: level,

View on GitHub (pinned to a7e689b3c3)

Solutions

  1. Rename the telemetry event to a lowercase slug containing only letters, numbers, '_' or '-' (e.g. 'task_completed' -> 'task-completed').
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at server/src/services/plugin-host-services.ts:1642 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of paperclipai/paperclip@a7e689b3c3 (2026-08-18). Data as JSON: /api/errors/49faf844c023b1aa. Report an issue: GitHub.