Skip to content

Log what causes the cache to be invalidated#627

Merged
bbenne10 merged 1 commit into
nix-community:masterfrom
winterqt:push-wnyzrmlrqmsp
Nov 2, 2025
Merged

Log what causes the cache to be invalidated#627
bbenne10 merged 1 commit into
nix-community:masterfrom
winterqt:push-wnyzrmlrqmsp

Conversation

@winterqt
Copy link
Copy Markdown
Member

Fixes #597

Fixes nix-community#597

Co-authored-by: Bryan Bennett <Bryan.Bennett@proton.me>
@winterqt
Copy link
Copy Markdown
Member Author

winterqt commented Oct 20, 2025

I'd love to write a test case for this, but ran into this even without my changes 😦

long
run unittest
test_fallback.bats
 ✓ test_fallback_allowed
 ✓ test_fallback_disallowed
test_gc.bats
 ✗ use_nix_strict
   (from function `assert_success' in file /nix/store/kzm7l2dpqwkfjw7095dbwnqdppax7v52-bats-assert/bats-assert/src/assert_success.bash, line 45,
    from function `assert_gcroot' in file tests/test_gc.bats, line 24,
    in test file tests/test_gc.bats, line 50)
     `assert_gcroot' failed
   find: ‘/tmp/nix-direnv.3uQ3Rs/.direnv’: No such file or directory

   -- command failed --
   status : 1
   output (498 lines):
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: write error
   stderr (5 lines):
     direnv: loading /tmp/nix-direnv.3uQ3Rs/.envrc
     direnv: using nix
     fetching path input 'path:/tmp/nix-direnv.3uQ3Rs'
     direnv: nix-direnv: Renewed cache
     Executing shellHook.
   --

 ✗ use_flake_strict
   (from function `assert_success' in file /nix/store/kzm7l2dpqwkfjw7095dbwnqdppax7v52-bats-assert/bats-assert/src/assert_success.bash, line 45,
    from function `assert_gcroot' in file tests/test_gc.bats, line 24,
    in test file tests/test_gc.bats, line 57)
     `assert_gcroot' failed
   find: ‘/tmp/nix-direnv.tJtuYq/.direnv’: No such file or directory

   -- command failed --
   status : 1
   output (498 lines):
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: ‘standard output’: Broken pipe
     find: write error
   stderr (6 lines):
     direnv: loading /tmp/nix-direnv.tJtuYq/.envrc
     direnv: using flake
     fetching path input 'path:/tmp/nix-direnv.tJtuYq'
     fetching path input 'path:/tmp/nix-direnv.tJtuYq'
     direnv: nix-direnv: Renewed cache
     Executing shellHook.
   --

test_use_nix.bats
 ✓ use_nix_attrs_strict
 ✓ use_nix_no_nix_path_strict
 ✓ use_nix_no_files
test_versions.bats
 ✓ _require_version_with_valid_versions
 ✓ _require_cmd_version_with_valid_versions

9 tests, 2 failures

It's not immediately obvious what exactly is failing after prodding at it for a few minutes... doesn't fail in GHA, though! Could be because I use Lix? Though that seems semi-unlikely.

Comment thread direnvrc
for file in "${watches[@]}"; do
if [[ $file -nt $profile_rc ]]; then
need_update=1
break
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Deviated from your original patch by removing the break here, so that all newer files get added to the array, instead of just the first.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is just a performance increase. I have yet to see direnv or nix-direnv have speed issues on reasonably sized inputs. Watching all nix files in nixpkgs has been performant for me, so I'm not too worried about this personally.

@bbenne10
Copy link
Copy Markdown
Contributor

I use Lix as well, so that's not likely the cause. I'll see if I can find a few minutes to poke around (posting from a non-nix enabled system at all right now, so not quite available yet). I'm not sure how I feel about these being unconditionally verbose, but I also don't really know if it is worth it to make them optional.

@bbenne10 bbenne10 added this pull request to the merge queue Nov 2, 2025
Merged via the queue into nix-community:master with commit 503cdf3 Nov 2, 2025
5 checks passed
@winterqt winterqt deleted the push-wnyzrmlrqmsp branch November 2, 2025 19:08
@winterqt
Copy link
Copy Markdown
Member Author

winterqt commented Nov 2, 2025

Thanks @bbenne10 — did you end up figuring out being able to reproduce what was wrong with the tests?

@bbenne10
Copy link
Copy Markdown
Contributor

bbenne10 commented Nov 2, 2025

I didn't, but getting it merged seemed more important than chasing my tail on that. I'll have to find some time to get it looked over more closely.

@llakala
Copy link
Copy Markdown
Contributor

llakala commented Feb 15, 2026

Could this maybe be disabled by default? Nixpkgs has just bumped to a version with this commit included here, and it spams scrollback every single time I change a nix-direnv tracked file. For now, I'm working around it with:

use nix &> /dev/null

But I still think a saner default would be to not log so much.

@bbenne10
Copy link
Copy Markdown
Contributor

bbenne10 commented Feb 15, 2026 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Figure out why a reload happened?

3 participants