Skip to content

Tailwind CSS 4.3.1 hangs in source scanner with @source "../../app.config.ts" used by Docus #20255

Description

@fachrihr

Tailwind CSS 4.3.1 hangs during source discovery in fresh Docus project

Description

I'm seeing a startup/build hang when using the latest Docus project with Tailwind CSS 4.3.1.

The issue occurs on a fresh project generated by Docus and appears to hang indefinitely during Tailwind source scanning.

Downgrading Tailwind from 4.3.1 to 4.3.0 immediately resolves the issue.

Environment

  • macOS
  • Node.js v22.x and v24.x (reproduced on both)
  • Docus 5.12.2
  • Nuxt 4.4.8
  • @nuxt/ui 4.9.0
  • Tailwind CSS 4.3.1

Dependency tree:

docus@5.12.2
├── @nuxt/ui@4.9.0
└── tailwindcss@4.3.1

nuxt@4.4.8

Reproduction

Create a fresh Docus project:

npx create-docus@latest docus-test
cd docus-test

npm install
npm run dev

or

npm run build

Actual Behavior

The process hangs indefinitely.

The last lines in the Tailwind debug log are:

INFO discover_sources: tailwindcss_oxide::scanner: enter
INFO discover_sources:walk_synchronous: tailwindcss_oxide::scanner: enter

No further progress is made.

The Nuxt application never becomes available.

Tailwind Debug Output

Source: PublicSourceEntry { base: "/Users/<user>/docus-test", pattern: "**/*", negated: false }

...

Source: PublicSourceEntry { base: "/Users/<user>/docus-test", pattern: "../../app.config.ts", negated: false }

...

Source: Pattern { base: "/Users", pattern: "/app.config.ts" }

INFO discover_sources: tailwindcss_oxide::scanner: enter
INFO discover_sources:walk_synchronous: tailwindcss_oxide::scanner: enter

Workarounds

1. Downgrade Tailwind to 4.3.0

{
  "overrides": {
    "tailwindcss": "4.3.0",
    "@tailwindcss/node": "4.3.0",
    "@tailwindcss/postcss": "4.3.0",
    "@tailwindcss/vite": "4.3.0"
  }
}

After reinstalling dependencies, the project starts normally.

2. Remove this source entry

Docus generates:

@source "../../app.config.ts";

from:

node_modules/docus/modules/css.ts

Removing that source entry also allows the application to start.

Additional Notes

The issue is reproducible on:

  • Node.js 22
  • Node.js 24

The issue occurs on a completely fresh Docus installation with no custom code.

Based on the behavior, it seems related to source discovery/scanning in Tailwind 4.3.1, possibly involving the handling of:

@source "../../app.config.ts";

or path normalization during source scanning.

Please let me know if I can provide additional logs or test a patched build.

Click to expand error log

tailwindcss-7985.log

2026-06-18T08:34:44.969937Z  INFO tailwindcss_oxide::scanner: Provided sources:
2026-06-18T08:34:44.970136Z  INFO tailwindcss_oxide::scanner: Source: PublicSourceEntry { base: "/Users/fachrihilmi/docus-test", pattern: "**/*", negated: false }
2026-06-18T08:34:44.970270Z  INFO tailwindcss_oxide::scanner: Source: PublicSourceEntry { base: "/Users/fachrihilmi/docus-test/.nuxt", pattern: "/Users/fachrihilmi/docus-test/**/*", negated: false }
2026-06-18T08:34:44.970276Z  INFO tailwindcss_oxide::scanner: Source: PublicSourceEntry { base: "/Users/fachrihilmi/docus-test/.nuxt", pattern: "/Users/fachrihilmi/docus-test/node_modules/docus/app/**/*", negated: false }
2026-06-18T08:34:44.970279Z  INFO tailwindcss_oxide::scanner: Source: PublicSourceEntry { base: "/Users/fachrihilmi/docus-test/.nuxt", pattern: "./ui", negated: false }
2026-06-18T08:34:44.970283Z  INFO tailwindcss_oxide::scanner: Source: PublicSourceEntry { base: "/Users/fachrihilmi/docus-test/node_modules/@nuxt/ui/dist/runtime", pattern: "./components", negated: false }
2026-06-18T08:34:44.970287Z  INFO tailwindcss_oxide::scanner: Source: PublicSourceEntry { base: "/Users/fachrihilmi/docus-test", pattern: "/Users/fachrihilmi/docus-test/content/**/*", negated: false }
2026-06-18T08:34:44.970291Z  INFO tailwindcss_oxide::scanner: Source: PublicSourceEntry { base: "/Users/fachrihilmi/docus-test", pattern: "/Users/fachrihilmi/docus-test/node_modules/docus/app/**/*", negated: false }
2026-06-18T08:34:44.970294Z  INFO tailwindcss_oxide::scanner: Source: PublicSourceEntry { base: "/Users/fachrihilmi/docus-test", pattern: "../../app.config.ts", negated: false }
2026-06-18T08:34:44.970298Z  INFO tailwindcss_oxide::scanner: Source: PublicSourceEntry { base: "/Users/fachrihilmi/docus-test", pattern: "/Users/fachrihilmi/docus-test/node_modules/docus/modules/assistant/**/*", negated: false }
2026-06-18T08:34:44.976869Z  INFO tailwindcss_oxide::scanner: Optimized sources:
2026-06-18T08:34:44.976879Z  INFO tailwindcss_oxide::scanner: Source: Auto { base: "/Users/fachrihilmi/docus-test" }
2026-06-18T08:34:44.976916Z  INFO tailwindcss_oxide::scanner: Source: Auto { base: "/Users/fachrihilmi/docus-test" }
2026-06-18T08:34:44.976920Z  INFO tailwindcss_oxide::scanner: Source: External { base: "/Users/fachrihilmi/docus-test/node_modules/docus/app" }
2026-06-18T08:34:44.976950Z  INFO tailwindcss_oxide::scanner: Source: External { base: "/Users/fachrihilmi/docus-test/.nuxt/ui" }
2026-06-18T08:34:44.976954Z  INFO tailwindcss_oxide::scanner: Source: External { base: "/Users/fachrihilmi/docus-test/node_modules/@nuxt/ui/dist/runtime/components" }
2026-06-18T08:34:44.976958Z  INFO tailwindcss_oxide::scanner: Source: Auto { base: "/Users/fachrihilmi/docus-test/content" }
2026-06-18T08:34:44.976962Z  INFO tailwindcss_oxide::scanner: Source: External { base: "/Users/fachrihilmi/docus-test/node_modules/docus/app" }
2026-06-18T08:34:44.976965Z  INFO tailwindcss_oxide::scanner: Source: Pattern { base: "/Users", pattern: "/app.config.ts" }
2026-06-18T08:34:44.977005Z  INFO tailwindcss_oxide::scanner: Source: External { base: "/Users/fachrihilmi/docus-test/node_modules/docus/modules/assistant" }
2026-06-18T08:34:44.982972Z  INFO discover_sources: tailwindcss_oxide::scanner: enter
2026-06-18T08:34:44.982987Z  INFO discover_sources:walk_synchronous: tailwindcss_oxide::scanner: enter

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions