orval-labs/orval

`clean: true` deletes the entire working directory when `schemas` has no `path`

Closed

#3,752 opened on Jul 22, 2026

View on GitHub
 (1 comment) (0 reactions) (0 assignees)TypeScript (648 forks)auto 404
bughelp wanted

Repository metrics

Stars
 (6,272 stars)
PR merge metrics
 (PR metrics pending)

Description

Description

Repro:

mkdir repro && cd repro
echo '{"openapi":"3.0.0","info":{"title":"t","version":"1"},"paths":{}}' > openapi.json
echo "keep me" > important.txt

cat > orval.config.ts <<'EOF'
import { defineConfig } from "orval";

export default defineConfig({
  api: {
    input: "./openapi.json",
    output: {
      target: "./src/generated/api.ts",
      client: "fetch",
      httpClient: "fetch",
      schemas: { type: "zod" },   // no path
      mode: "single",
      clean: true,
      override: { fetch: { runtimeValidation: true } },
    },
  },
});
EOF

npx orval --config ./orval.config.ts

repro/ is now empty and the command errors.

Output client

fetch

Configuration (orval.config)

export default defineConfig({
  api: {
    input: "./openapi.json",
    output: {
      target: "./src/generated/api.ts",
      client: "fetch",
      httpClient: "fetch",
      schemas: { type: "zod" },   // no path
      mode: "single",
      clean: true,
      override: { fetch: { runtimeValidation: true } },
    },
  },
});

Environment

System: OS: macOS 26.5.2 CPU: (18) arm64 Apple M5 Max Memory: 70.76 GB / 128.00 GB Shell: 5.9 - /bin/zsh npmPackages: @tanstack/react-query: ^5.101.4 => 5.101.4 orval: ^8.22.0 => 8.22.0 react: ^19.2.0 => 19.2.8 zod: ^4.4.3 => 4.4.3

Expected behavior

It shouldn't wipe the entire directory

Actual behavior

It wipes the entire directory

OpenAPI document (minimal, if applicable)

openapi: 3.0.3
info:
  title: Demo
  version: 0.0.0
paths: {}

Additional context

I ran into this because an agent was setting up orval and it would keep deleting the entire directory and it couldn't figure out why, nothing in the output mentions deleting anything. I was lucky it didn't delete anything meaningful but its a real footgun

This is similar to #3538/#3657

Contributor guide