output-error-nondeterminism

Identify and fix non-deterministic patterns in Output SDK workflows.

430|12|Updated Mar 13, 2026
One-click install
npx skills add https://github.com/growthxai/output --skill output-error-nondeterminism
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: output-error-nondeterminism
Source: https://github.com/growthxai/output/tree/main/coding_assistants/claude/plugins/outputai/skills/output-error-nondeterminism
Command: npx skills add https://github.com/growthxai/output --skill output-error-nondeterminism

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Non-deterministic behavior in Output SDK workflows breaks replay reliability and makes troubleshooting challenging. This guide provides patterns and actionable guidance to diagnose and fix determinism issues so replays are identical across runs and recoveries.

Core Features & Use Cases

  • Identify non-deterministic patterns in workflow code, including usage of Math.random, Date.now, crypto.randomUUID, dynamic imports, and environment-dependent values.
  • Provide concrete fixes: move non-deterministic values to steps or inputs, generate in steps, and use static imports and explicit configuration to ensure deterministic history.
  • Use Case: When you see replay failures or inconsistent results across runs, or warnings about determinism violations in Temporal replays.

Quick Start

Start a representative workflow run and review the trace to locate non-deterministic operations.

Frequently Asked Questions about output-error-nondeterminism

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
Why does my Temporal workflow replay fail with non-determinism errors?

Temporal workflow replay fails due to non-determinism when code uses dynamic values like Math.random or Date.now. Fixing non-determinism ensures replays match the original history exactly during recovery and retries.

How do I fix non-deterministic behavior in Output SDK workflows?

Fix non-deterministic Output SDK workflows by moving dynamic values to steps or passing them as explicit inputs. Replace Math.random, Date.now, and crypto.randomUUID with deterministic step-generated values to guarantee reproducible history.

What causes non-deterministic replays in workflow recovery?

Non-deterministic replays are caused by dynamic imports, environment-dependent values, and random number generation inside workflows. Using static imports and explicit configuration inputs ensures deterministic history during workflow recovery.

Can I use Date.now or crypto.randomUUID inside a Temporal workflow?

Using Date.now or crypto.randomUUID inside a Temporal workflow breaks determinism and causes replay failures. Generate these values in workflow steps or pass them as inputs to ensure consistent results across all runs.

What's the best way to ensure deterministic history in workflow replays?

Ensure deterministic history by applying static imports, explicit environment inputs, and step-generated values. Avoiding dynamic imports and random functions guarantees identical workflow replays across recovery and retry attempts.