jetify-com / devbox

Instant, easy, and predictable development environments
https://www.jetify.com/devbox/
Apache License 2.0
7.84k stars 188 forks source link

Errors like "Too many requests" must be ignored if the package is already installed #2033

Open sestegra opened 2 months ago

sestegra commented 2 months ago

What happened?

When launching devbox shell I got the following message

Error: GET https://search.devbox.sh/v2/resolve?name=age&version=latest: unexpected status code 429 Too Many Requests: Too Many Requests

The expected command is more important than keeping package up-to-date.

I suggest to create a cache locally and update it on-demand or every day for instance.

Steps to reproduce

  1. Install devbox
  2. Create a devbox.json file
  3. Launch devbox shell

Command

shell

devbox.json

{
  "$schema": "https://raw.githubusercontent.com/jetify-com/devbox/0.10.5/.schema/devbox.schema.json",
  "packages": [
    "age@latest",
    "cue@latest"
  ],
  "shell": {
    "init_hook": [
      ". $DEVBOX_PROJECT_ROOT/jmp/devbox.d/etc/profile"
    ],
    "scripts": {}
  }
}%

Devbox version

0.10.6

Nix version

nix (Nix) 2.18.1

What system does this bug occur on?

macOS (Apple Silicon)

Debug logs

2024/05/01 13:19:22
ExecutionID:433cf90f8082451f81ce193a67d99543
GET https://search.devbox.sh/v2/resolve?name=age&version=latest: unexpected status code 429 Too Many Requests: Too Many Requests

go.jetpack.io/devbox/internal/searcher.execGet[...]
    go.jetpack.io/devbox/internal/searcher/client.go:104
go.jetpack.io/devbox/internal/searcher.(*client).ResolveV2
    go.jetpack.io/devbox/internal/searcher/client.go:83
go.jetpack.io/devbox/internal/lock.resolveV2
    go.jetpack.io/devbox/internal/lock/resolve.go:90
go.jetpack.io/devbox/internal/lock.(*File).FetchResolvedPackage
    go.jetpack.io/devbox/internal/lock/resolve.go:51
go.jetpack.io/devbox/internal/lock.(*File).Resolve
    go.jetpack.io/devbox/internal/lock/lockfile.go:81
go.jetpack.io/devbox/internal/devpkg.(*Package).sysInfoIfExists
    go.jetpack.io/devbox/internal/devpkg/narinfo_cache.go:214
go.jetpack.io/devbox/internal/devpkg.(*outputs).initDefaultNames
    go.jetpack.io/devbox/internal/devpkg/outputs.go:28
go.jetpack.io/devbox/internal/devpkg.(*outputs).GetNames
    go.jetpack.io/devbox/internal/devpkg/outputs.go:17
go.jetpack.io/devbox/internal/devpkg.(*Package).GetOutputNames
    go.jetpack.io/devbox/internal/devpkg/package.go:684
go.jetpack.io/devbox/internal/devpkg.(*Package).Installables
    go.jetpack.io/devbox/internal/devpkg/package.go:243
go.jetpack.io/devbox/internal/devbox.(*Devbox).packagesToInstallInStore
    go.jetpack.io/devbox/internal/devbox/packages.go:520
go.jetpack.io/devbox/internal/devbox.(*Devbox).installNixPackagesToStore
    go.jetpack.io/devbox/internal/devbox/packages.go:432
go.jetpack.io/devbox/internal/devbox.(*Devbox).installPackages
    go.jetpack.io/devbox/internal/devbox/packages.go:403
go.jetpack.io/devbox/internal/devbox.(*Devbox).ensureStateIsUpToDate
    go.jetpack.io/devbox/internal/devbox/packages.go:271
go.jetpack.io/devbox/internal/devbox.(*Devbox).ensureStateIsUpToDateAndComputeEnv
    go.jetpack.io/devbox/internal/devbox/devbox.go:1017
go.jetpack.io/devbox/internal/devbox.(*Devbox).Shell
    go.jetpack.io/devbox/internal/devbox/devbox.go:209
go.jetpack.io/devbox/internal/boxcli.runShellCmd
    go.jetpack.io/devbox/internal/boxcli/shell.go:83
go.jetpack.io/devbox/internal/boxcli.shellCmd.func1
    go.jetpack.io/devbox/internal/boxcli/shell.go:36
github.com/spf13/cobra.(*Command).execute
    github.com/spf13/cobra@v1.8.0/command.go:983
github.com/spf13/cobra.(*Command).ExecuteC
    github.com/spf13/cobra@v1.8.0/command.go:1115
github.com/spf13/cobra.(*Command).Execute
    github.com/spf13/cobra@v1.8.0/command.go:1039
go.jetpack.io/devbox/internal/boxcli/midcobra.(*midcobraExecutable).Execute
    go.jetpack.io/devbox/internal/boxcli/midcobra/midcobra.go:61
go.jetpack.io/devbox/internal/boxcli.Execute
    go.jetpack.io/devbox/internal/boxcli/root.go:113
go.jetpack.io/devbox/internal/boxcli.Main
    go.jetpack.io/devbox/internal/boxcli/root.go:136
main.main
    ./main.go:11
runtime.main
    runtime/proc.go:271
runtime.goexit
    runtime/asm_arm64.s:1222