KeyError when updating packages

Hi all,

Since some hours ago I can’t seem to update my packages : here is the result I get.

(@v1.6) pkg> update
ERROR: KeyError: key "BitTwiddlingConvenienceFunctions" not found
Stacktrace:
  [1] getindex
    @ ./dict.jl:482 [inlined]
  [2] #33
    @ /tmp/scratch/julia-1.6.5/usr/share/julia/stdlib/v1.6/Pkg/src/manifest.jl:273 [inlined]
  [3] _all(f::Pkg.Types.var"#33#36"{Dict{String, Bool}}, itr::Dict{String, Base.UUID}, #unused#::Colon)
    @ Base ./reduce.jl:923
  [4] all
    @ ./reduce.jl:918 [inlined]
  [5] destructure(manifest::Pkg.Types.Manifest)
    @ Pkg.Types /tmp/scratch/julia-1.6.5/usr/share/julia/stdlib/v1.6/Pkg/src/manifest.jl:273
  [6] write_manifest(manifest::Pkg.Types.Manifest, manifest_file::String)
    @ Pkg.Types /tmp/scratch/julia-1.6.5/usr/share/julia/stdlib/v1.6/Pkg/src/manifest.jl:296
  [7] write_manifest
    @ /tmp/scratch/julia-1.6.5/usr/share/julia/stdlib/v1.6/Pkg/src/manifest.jl:293 [inlined]
  [8] write_env(env::Pkg.Types.EnvCache; update_undo::Bool)
    @ Pkg.Types /tmp/scratch/julia-1.6.5/usr/share/julia/stdlib/v1.6/Pkg/src/Types.jl:1421
  [9] write_env
    @ /tmp/scratch/julia-1.6.5/usr/share/julia/stdlib/v1.6/Pkg/src/Types.jl:1420 [inlined]
 [10] up(ctx::Pkg.Types.Context, pkgs::Vector{Pkg.Types.PackageSpec}, level::Pkg.Types.UpgradeLevel)
    @ Pkg.Operations /tmp/scratch/julia-1.6.5/usr/share/julia/stdlib/v1.6/Pkg/src/Operations.jl:1327
 [11] up(ctx::Pkg.Types.Context, pkgs::Vector{Pkg.Types.PackageSpec}; level::Pkg.Types.UpgradeLevel, mode::Pkg.Types.PackageMode, update_registry::Bool, kwargs::Base.Iterators.Pairs{Symbol, Base.TTY, Tuple{Symbol}, NamedTuple{(:io,), Tuple{Base.TTY}}})
    @ Pkg.API /tmp/scratch/julia-1.6.5/usr/share/julia/stdlib/v1.6/Pkg/src/API.jl:261
 [12] up(pkgs::Vector{Pkg.Types.PackageSpec}; io::Base.TTY, kwargs::Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
    @ Pkg.API /tmp/scratch/julia-1.6.5/usr/share/julia/stdlib/v1.6/Pkg/src/API.jl:80
 [13] up(pkgs::Vector{Pkg.Types.PackageSpec})
    @ Pkg.API /tmp/scratch/julia-1.6.5/usr/share/julia/stdlib/v1.6/Pkg/src/API.jl:78
 [14] do_cmd!(command::Pkg.REPLMode.Command, repl::REPL.LineEditREPL)
    @ Pkg.REPLMode /tmp/scratch/julia-1.6.5/usr/share/julia/stdlib/v1.6/Pkg/src/REPLMode/REPLMode.jl:408
 [15] do_cmd(repl::REPL.LineEditREPL, input::String; do_rethrow::Bool)
    @ Pkg.REPLMode /tmp/scratch/julia-1.6.5/usr/share/julia/stdlib/v1.6/Pkg/src/REPLMode/REPLMode.jl:386
 [16] do_cmd
    @ /tmp/scratch/julia-1.6.5/usr/share/julia/stdlib/v1.6/Pkg/src/REPLMode/REPLMode.jl:377 [inlined]
 [17] (::Pkg.REPLMode.var"#24#27"{REPL.LineEditREPL, REPL.LineEdit.Prompt})(s::REPL.LineEdit.MIState, buf::IOBuffer, ok::Bool)
    @ Pkg.REPLMode /tmp/scratch/julia-1.6.5/usr/share/julia/stdlib/v1.6/Pkg/src/REPLMode/REPLMode.jl:550
 [18] #invokelatest#2
    @ ./essentials.jl:708 [inlined]
 [19] invokelatest
    @ ./essentials.jl:706 [inlined]
 [20] run_interface(terminal::REPL.Terminals.TextTerminal, m::REPL.LineEdit.ModalInterface, s::REPL.LineEdit.MIState)
    @ REPL.LineEdit /tmp/scratch/julia-1.6.5/usr/share/julia/stdlib/v1.6/REPL/src/LineEdit.jl:2441
 [21] run_frontend(repl::REPL.LineEditREPL, backend::REPL.REPLBackendRef)
    @ REPL /tmp/scratch/julia-1.6.5/usr/share/julia/stdlib/v1.6/REPL/src/REPL.jl:1126
 [22] (::REPL.var"#44#49"{REPL.LineEditREPL, REPL.REPLBackendRef})()
    @ REPL ./task.jl:411

The thing is, I have the impression it broke Pluto, which is my main way of working in Julia. I don’t know if broken Pluto is the cause or the effect… Here is the result of trying to open a new notebook with just using Plots inside:

julia> using Pluto

julia> Pluto.run()
[ Info: Loading...

Opening http://localhost:1234/?secret=tTbboBu8 in your default browser... ~ have fun!

Press Ctrl+C in this terminal to stop Pluto

    Updating registry done ✓
   Resolving package versions...
   Resolving package versions...
   Resolving package versions...
   Resolving package versions...
┌ Warning: PlutoPkg: Failed to add/remove packages! Resetting package environment...
│   PLUTO_VERSION = v"0.18.1"
│   VERSION = v"1.6.5"
│   old_packages =
│    1-element Vector{String}:
│     "Plots"
│   new_packages =
│    1-element Vector{String}:
│     "Plots"
│   exception =
│    Unsatisfiable requirements detected for package Bzip2_jll [6e34b625]:
│     Bzip2_jll [6e34b625] log:
│     ├─Bzip2_jll [6e34b625] has no known versions!
│     └─found to have no compatible versions left with GR_jll [d2c73de3]
│       └─GR_jll [d2c73de3] log:
│         ├─possible versions are: 0.51.2-0.64.1 or uninstalled
│         └─restricted by compatibility requirements with GR [28b8d3ca] to versions: 0.51.2-0.64.1
│           └─GR [28b8d3ca] log:
│             ├─possible versions are: 0.35.0-0.64.1 or uninstalled
│             └─restricted by compatibility requirements with Plots [91a5bcdd] to versions: 0.64.0-0.64.1
│               └─Plots [91a5bcdd] log:
│                 ├─possible versions are: 0.12.1-1.27.3 or uninstalled
│                 └─restricted to versions 1.27.3 by an explicit requirement, leaving only versions 1.27.3
│    Stacktrace:
│      [1] propagate_constraints!(graph::Pkg.Resolve.Graph, sources::Set{Int64}; log_events::Bool)
│        @ Pkg.Resolve /tmp/scratch/julia-1.6.5/usr/share/julia/stdlib/v1.6/Pkg/src/Resolve/graphtype.jl:1048
│      [2] propagate_constraints! (repeats 2 times)
│        @ /tmp/scratch/julia-1.6.5/usr/share/julia/stdlib/v1.6/Pkg/src/Resolve/graphtype.jl:989 [inlined]
│      [3] simplify_graph!(graph::Pkg.Resolve.Graph, sources::Set{Int64}; clean_graph::Bool)
│        @ Pkg.Resolve /tmp/scratch/julia-1.6.5/usr/share/julia/stdlib/v1.6/Pkg/src/Resolve/graphtype.jl:1503
│      [4] simplify_graph! (repeats 2 times)
│        @ /tmp/scratch/julia-1.6.5/usr/share/julia/stdlib/v1.6/Pkg/src/Resolve/graphtype.jl:1503 [inlined]
│      [5] resolve_versions!(ctx::Pkg.Types.Context, pkgs::Vector{Pkg.Types.PackageSpec})
│        @ Pkg.Operations /tmp/scratch/julia-1.6.5/usr/share/julia/stdlib/v1.6/Pkg/src/Operations.jl:408
│      [6] targeted_resolve(ctx::Pkg.Types.Context, pkgs::Vector{Pkg.Types.PackageSpec}, preserve::Pkg.Types.PreserveLevel)
│        @ Pkg.Operations /tmp/scratch/julia-1.6.5/usr/share/julia/stdlib/v1.6/Pkg/src/Operations.jl:1215
│      [7] _resolve
│        @ /tmp/scratch/julia-1.6.5/usr/share/julia/stdlib/v1.6/Pkg/src/Operations.jl:1221 [inlined]
│      [8] add(ctx::Pkg.Types.Context, pkgs::Vector{Pkg.Types.PackageSpec}, new_git::Vector{Base.UUID}; preserve::Pkg.Types.PreserveLevel, platform::Base.BinaryPlatforms.Platform)
│        @ Pkg.Operations /tmp/scratch/julia-1.6.5/usr/share/julia/stdlib/v1.6/Pkg/src/Operations.jl:1236
│      [9] add(ctx::Pkg.Types.Context, pkgs::Vector{Pkg.Types.PackageSpec}; preserve::Pkg.Types.PreserveLevel, platform::Base.BinaryPlatforms.Platform, kwargs::Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
│        @ Pkg.API /tmp/scratch/julia-1.6.5/usr/share/julia/stdlib/v1.6/Pkg/src/API.jl:204
│     [10] (::Pluto.var"#130#144"{Vector{String}, Pluto.Notebook, Pluto.IOListener})()
│        @ Pluto ~/.julia/packages/Pluto/MmUNj/src/packages/Packages.jl:166
│     [11] withinteractive(f::Pluto.var"#130#144"{Vector{String}, Pluto.Notebook, Pluto.IOListener}, value::Bool)
│        @ Pluto ~/.julia/packages/Pluto/MmUNj/src/packages/Packages.jl:495
│     [12] #129
│        @ ~/.julia/packages/Pluto/MmUNj/src/packages/Packages.jl:152 [inlined]
│     [13] withio(f::Pluto.var"#129#143"{Vector{String}, Pluto.Notebook, Pluto.IOListener}, ctx::Pkg.Types.Context, io::IOContext{IOBuffer})
│        @ Pluto.PkgCompat ~/.julia/packages/Pluto/MmUNj/src/packages/PkgCompat.jl:129
│     [14] (::Pluto.var"#123#136"{Pluto.Notebook, Pluto.IOListener, Vector{String}, Vector{String}, Bool, Bool})()
│        @ Pluto ~/.julia/packages/Pluto/MmUNj/src/packages/Packages.jl:151
│     [15] withtoken(f::Pluto.var"#123#136"{Pluto.Notebook, Pluto.IOListener, Vector{String}, Vector{String}, Bool, Bool}, token::Pluto.Token)
│        @ Pluto ~/.julia/packages/Pluto/MmUNj/src/evaluation/Tokens.jl:19
│     [16] sync_nbpkg_core(notebook::Pluto.Notebook; on_terminal_output::Pluto.var"#iocallback#152"{Pluto.ServerSession, Pluto.Notebook})
│        @ Pluto ~/.julia/packages/Pluto/MmUNj/src/packages/Packages.jl:103
│     [17] #150
│        @ ~/.julia/packages/Pluto/MmUNj/src/packages/Packages.jl:262 [inlined]
│     [18] withtoken(f::Pluto.var"#150#151"{Pluto.ServerSession, Pluto.Notebook}, token::Pluto.Token)
│        @ Pluto ~/.julia/packages/Pluto/MmUNj/src/evaluation/Tokens.jl:19
│     [19] sync_nbpkg(session::Pluto.ServerSession, notebook::Pluto.Notebook; save::Bool)
│        @ Pluto ~/.julia/packages/Pluto/MmUNj/src/packages/Packages.jl:253
│     [20] (::Pluto.var"#218#221"{Bool, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, Pluto.ServerSession, Pluto.Notebook})()
│        @ Pluto ~/.julia/packages/Pluto/MmUNj/src/evaluation/Run.jl:500
│     [21] macro expansion
│        @ ~/.julia/packages/Pluto/MmUNj/src/evaluation/Tokens.jl:101 [inlined]
│     [22] (::Pluto.var"#193#194"{Pluto.var"#218#221"{Bool, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, Pluto.ServerSession, Pluto.Notebook}})()
│        @ Pluto ./task.jl:411
└ @ Pluto ~/.julia/packages/Pluto/MmUNj/src/packages/Packages.jl:286
┌ Info: Backup saved to
└   backup_path = "/home/alseidon/.julia/pluto_notebooks/Revolutionary story backup 1.jl"

I should mention I am not an admin on my system (Ubuntu 20.04.3).

Could you post your Project.toml and Manifest.toml here so maybe someone else can reproduce it?

Sure, here is Project.toml :

[deps]
NOMAD = "02130f1c-4665-5b79-af82-ff1385104aa0"
Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80"
Pluto = "c3e4b0f8-55cb-11ea-2926-15256bba5781"
TaylorIntegration = "92b13dbe-c966-51a2-8445-caca9f8a7d42"

[extras]
CPUSummary = "2a0fbf3d-bb9c-48f3-b0a9-814d99fd7ab9"

And here is a link to Manifest.toml : Dropbox - Manifest.toml - Simplify your life