Skip to content

[JS] schema validation error in streaming mode cause reflection API to crash #271

@pavelgj

Description

@pavelgj

Describe the bug
When running the flow (see below) from the Dev UI in streaming mode the genkit start process "crashes".
Full error: https://gist.github.com/pavelgj/0ef67bc35d2c4436c7c128462a64b0b9

To Reproduce

const jokeSubjectGenerator = defineTool(
  {
    name: 'jokeSubjectGenerator',
    description: 'can be called to generate a subject for a joke',
  },
  async () => {
    return 'banana';
  }
);

export const toolCaller = defineFlow(
  {
    name: 'toolCaller',
    outputSchema: z.string(),
  },
  async (_, streamingCallback) => {
    if (!streamingCallback) {
      throw new Error('this flow only works in streaming mode');
    }

    const { response, stream } = await generateStream({
      model: gemini15ProPreview,
      config: {
        temperature: 1,
      },
      tools: [jokeSubjectGenerator],
      prompt: `tell me a joke`,
    });

    for await (const chunk of stream()) {
      streamingCallback(chunk);
    }

    return (await response()).text();
  }
);

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
image

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingdevuijs

    Type

    No type

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions