ruvnet/ruflo · error · Error

read action requires mail_id

Error message

read action requires mail_id

What it means

The mail tool's 'read' action was invoked without a mail_id. The schema leaves mail_id optional for the other actions, so this per-action guard enforces its presence specifically for reading a message.

Source

Thrown at v3/plugins/gastown-bridge/src/mcp-tools.ts:1445

    const startTime = Date.now();

    try {
      const validated = MailInputSchema.parse(input);
      const bridge = context.bridges.gastown;

      let messages: GasTownMail[] | undefined;
      let sent_id: string | undefined;

      switch (validated.action) {
        case 'send':
          if (!validated.to || !validated.subject || !validated.body) {
            throw new Error('send action requires to, subject, and body');
          }
          sent_id = await bridge.sendMail(validated.to, validated.subject, validated.body);
          break;
        case 'read':
          if (!validated.mail_id) {
            throw new Error('read action requires mail_id');
          }
          messages = [await bridge.readMail(validated.mail_id)];
          break;
        case 'list':
          messages = await bridge.listMail(validated.limit);
          break;
      }

      const result: MailResult = {
        success: true,
        action: validated.action,
        messages,
        sent_id,
        durationMs: Date.now() - startTime,
      };

      return {
        content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],

View on GitHub (pinned to fa13ee4ad6)

Solutions

  1. Inspect the underlying cause in logs, fix the root issue, and retry the operation.
  2. Validate inputs and preconditions before invoking this code path so the error is avoided.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at v3/plugins/gastown-bridge/src/mcp-tools.ts:1445 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of ruvnet/ruflo@fa13ee4ad6 (2026-08-18). Data as JSON: /api/errors/e916a04bae16be76. Report an issue: GitHub.