Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Version selectors 1.x/1.0.x result in 400/404 response errors on install #37

Open
byCedric opened this issue Nov 13, 2023 · 16 comments
Open
Assignees
Labels
bug Something isn't working

Comments

@byCedric
Copy link

byCedric commented Nov 13, 2023

We use bun in various parts of the expo/expo repository, e.g. here. Like the node setup action, we use a version selector with a .x, e.g., node-version: 18.x.

This seemed to work until some days ago when our CI started failing with the following message:
image

A quick test showed that using the exact version number does seem to work, but 1.x or 1.0.x won't anymore. Is this something that never should have worked, or a bug? 😄

request response
1.0.x using 1.0.x as version
1.x using 1.x as version
1.0.11 ✅ - but big image, see below
latest ✅ - but big image, see below
See 1.0.11 response

using 1.0.11 as version

See latest response

using latest as version

byCedric added a commit to expo/expo that referenced this issue Nov 13, 2023
# Why

This seems to be an issue introduced on Bun's backend, see
oven-sh/setup-bun#37 for more info.

# How

- Workaround broken `1.x` selectors by using `latest`

# Test Plan

See CI passing

# Checklist

<!--
Please check the appropriate items below if they apply to your diff.
This is required for changes to Expo modules.
-->

- [x] Documentation is up to date to reflect these changes (eg:
https://docs.expo.dev and README.md).
- [ ] Conforms with the [Documentation Writing Style
Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)
- [ ] This diff will work correctly for `npx expo prebuild` & EAS Build
(eg: updated a module plugin).
@byCedric byCedric changed the title Version selectors 1.x/1.0.x causes 400 bad request on install Version selectors 1.x/1.0.x result in 400 bad responses on install Nov 13, 2023
@byCedric byCedric changed the title Version selectors 1.x/1.0.x result in 400 bad responses on install Version selectors 1.x/1.0.x result in 400 response errors on install Nov 13, 2023
@byCedric
Copy link
Author

byCedric commented Nov 13, 2023

If this shouldn't have worked from the start, consider adding it 😄 The benefit of bun-version: 1.x over bun-version: 1 is that YAML (& tooling) will cast the value as a string instead of a number.

@xhyrom
Copy link
Collaborator

xhyrom commented Nov 14, 2023

This is an issue with bun's api, sadly, I can't do anything with it. Electorid must solve it.

@byCedric
Copy link
Author

I'd figure as much 😄 Thanks for pulling in the right person to solve it.

@Electroid
Copy link
Contributor

We actually think this could be a bug in Bun. These errors are not from Github, we're investigating.

NigelBreslaw added a commit to NigelBreslaw/guardian-ghost that referenced this issue Dec 23, 2023
Use of 'v1.x' breaks bun in CI. For now just use 'v1'
oven-sh/setup-bun#37
onizam95 pushed a commit to onizam95/expo-av-drm that referenced this issue Jan 15, 2024
# Why

This seems to be an issue introduced on Bun's backend, see
oven-sh/setup-bun#37 for more info.

# How

- Workaround broken `1.x` selectors by using `latest`

# Test Plan

See CI passing

# Checklist

<!--
Please check the appropriate items below if they apply to your diff.
This is required for changes to Expo modules.
-->

- [x] Documentation is up to date to reflect these changes (eg:
https://docs.expo.dev and README.md).
- [ ] Conforms with the [Documentation Writing Style
Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)
- [ ] This diff will work correctly for `npx expo prebuild` & EAS Build
(eg: updated a module plugin).
@xhyrom xhyrom added the bug Something isn't working label Mar 7, 2024
@xhyrom
Copy link
Collaborator

xhyrom commented Mar 7, 2024

Looks like this is already fixed.

@xhyrom xhyrom closed this as completed Mar 7, 2024
@na-ji
Copy link

na-ji commented Apr 25, 2024

Looks like this is already fixed.

It isn't. It's giving a different error now. When I try 1.x, I get this 404 error:

Run oven-sh/setup-bun@v1
  with:
    bun-version: 1.x
    no-cache: false
Downloading a new version of Bun: https://bun.sh/download/1.x/linux/x64?avx2=true&profile=false
Error: Error: Unexpected HTTP response: 404

I guess we should re-open this issue. And maybe link it to an issue on bun side?

@xhyrom xhyrom reopened this Apr 26, 2024
@xhyrom
Copy link
Collaborator

xhyrom commented May 7, 2024

Looks like this is already fixed.

It isn't. It's giving a different error now. When I try 1.x, I get this 404 error:

Run oven-sh/setup-bun@v1
  with:
    bun-version: 1.x
    no-cache: false
Downloading a new version of Bun: https://bun.sh/download/1.x/linux/x64?avx2=true&profile=false
Error: Error: Unexpected HTTP response: 404

I guess we should re-open this issue. And maybe link it to an issue on bun side?

I tried it and it works. Maybe you can try again? :D

@Zeryther
Copy link

Zeryther commented May 9, 2024

image

Also failing for "1.x"

@xhyrom
Copy link
Collaborator

xhyrom commented May 9, 2024

image

Also failing for "1.x"

can you send the details please? (click on the first line)
don't have to ;)

@xhyrom
Copy link
Collaborator

xhyrom commented May 9, 2024

Something is wrong with bun's download api again. https://github.com/oven-sh/setup-bun/actions/runs/9020175817

@xhyrom xhyrom pinned this issue May 9, 2024
@xhyrom xhyrom changed the title Version selectors 1.x/1.0.x result in 400 response errors on install Version selectors 1.x/1.0.x result in 400/404 response errors on install May 9, 2024
@jerome-benoit
Copy link

jerome-benoit commented May 11, 2024

The issue seems triggered each time a bun new version is in the release pipeline: new version seems to be announced to the download system before the pipeline has finished and binaries are available. And fallback to previous matching latest version does not seem to work.

@jerome-benoit
Copy link

jerome-benoit commented Jun 24, 2024

The issue seems triggered each time a bun new version is in the release pipeline: new version seems to be announced to the download system before the pipeline has finished and binaries are available. And fallback to previous matching latest version does not seem to work.

The error pattern seems more related to a call to an API that is rate limited if the version contains some kind of wildcard. It seems to involve a call to a rate limited API to get a list of the available bun versions which is failing.

@xhyrom
Copy link
Collaborator

xhyrom commented Jun 24, 2024

The issue seems triggered each time a bun new version is in the release pipeline: new version seems to be announced to the download system before the pipeline has finished and binaries are available. And fallback to previous matching latest version does not seem to work.

The error pattern seems more related to a call to an API that is rate limited if the version contains some kind of wildcard. It seems to involve a call to a rate limited API get a list of the available bun versions which is failing.

I'm considering implementing wildcard resolution into the action itself instead of using API for it. It would resolve all the issues we're currently facing.

@jerome-benoit
Copy link

jerome-benoit commented Jun 24, 2024

I'm considering implementing wildcard resolution into the action itself instead of using API for it. It would resolve all the issues we're currently facing.

With a static file containing all the shipped bun versions like https://nodejs.org/download/release/index.json, it will allow tools like setup-bun to get it, cache it and refresh it only if needed. Adding its generation to the bun release process should not be too hard. Adding a way to get its content hash will help tools at knowing if a refresh is needed.

byCedric added a commit to expo/atlas that referenced this issue Jul 4, 2024
byCedric added a commit to expo/atlas that referenced this issue Jul 4, 2024
@Dessyume
Copy link

Dessyume commented Jul 6, 2024

Just ran into this issue on a private repository while using the 1.x selector. I went with Cedric's fix and changed it into latest.

As far as I'm aware, this shouldn't be a hard thing to fix, so let's hope for the best I guess.

@xhyrom
Copy link
Collaborator

xhyrom commented Jul 29, 2024

Pull request #93 should resolve all issues related to this. Anybody can try the development version of setup-bun by using oven-sh/setup-bun@feat/implement-wildcard-resolution-into-the-action (i hope that reference works)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

7 participants