Why does seemingly any NIX issue cause prybar (python310) to go missing?

Problem description:
Any invalid NIX package can/will cause prybar-python310 to go missing

Expected behavior:
NIX errors, but prybar is still available.

Actual behavior:
NIX errors, and prybar is not found, locking the console into a loop trying to start the interpreter

Steps to reproduce:
Add any invalid package to NIX

Bug appears at this link:
Probably all repls.

For example, here was an invalid package added to NIX, which, while it should casue an error, should not cause prybar-python310 to go missing.
Browser/OS/Device:
Replit App/Android 12/Samsung Galaxy A23 5G, but @bigminiboss probably was on something else.

1 Like

because prybar-python310 is loaded via Nix, but won’t load if there’s an error. It’d be a question for Nix developers as to why an attribute error is fatal and not a warning.
If needed you can work around this while testing out packages to add, but this would make it go silent if a package doesn’t exist, so you’d only find that the package didn’t exist if there’s some other Nix error:

{ pkgs }: {
  deps = [ # We know that these packages exist
    pkgs.python310
 ]
++ map (x: pkgs."${x}") (builtins.filter (x: pkgs?"${x}" || pkgs.lib.warn x false) [
    "oops I don't exist"
    "protobuf"
  ]);
}
4 Likes

I now have this problem.
Is there a solution?

Is there a default version of the replit.nix file that I can revert to?
I have edited this file, but do not know how it should actually look.

Meanwhile, the console is in a loop, so the replit cannot be used.

Any help with this?

  1. Please make this a seprate topic
  2. Please provide a repl link and/or your replit.nix file.
1 Like