shuttle-hq/shuttle

[Bug]: Got `409 Conflict` when I stop and start my project.

ffguven opened this issue · 1 comments

What happened?

Hi folks,

I am playing with a hello world project so that I can know more about Shuttle.

When I deploy my project, everything is fine and then I'm able to use it right away, that's great. But when I stop my project via the Web Console, and then

  • start it via the cargo-shuttle project start, I keep getting the error below:
godis@DESKTOP-T90BDM8:~/shuttle/zort$ cargo-shuttle project start

Project creation failed

Please double-check the project status before retrying:

cargo shuttle project status

If the project creation or retrieving the status fails repeatedly, please check Shuttle status at https://status.shuttle.rs before contacting the team on the Discord server.
Error: failed to make create project request

Caused by:
    409 Conflict
    Message: project 'zort' is already running
  • restart it via the cargo-shuttle project restart and get
godis@DESKTOP-T90BDM8:~/shuttle/zort$ cargo-shuttle project restart
Project "zort" is destroyed
Run `cargo shuttle project start` to recreate project environment on Shuttle.
Project "zort" is ready
Your project will sleep if it is idle for 30 minutes.
To change the idle time refer to the docs: https://docs.shuttle.rs/getting-started/idle-projects

Run `cargo shuttle deploy --allow-dirty` to deploy your Shuttle service.

But still I don't see my project is running via the Web console, or I cannot use my hello-world endpoint at all, keep getting

Project is running but is not responding correctly. Try to restart it
  • And when I hit cargo-shuttle project status
godis@DESKTOP-T90BDM8:~/shuttle/zort$ cargo-shuttle project status
Project "zort" is ready
Idle minutes: 30

I would expect hitting the start or restart via the CLI will execute my already deployed function, but that's not the case.

Maybe my understanding of this stop/start/restart lifecycle is not correct, but could you help me to understand if that's a genuine issue or not?

Project name: zort

Version

cargo-shuttle 0.47.0

Which operating system(s) are you seeing the problem on?

Linux

Which CPU architectures are you seeing the problem on?

ARM64

Relevant log output

godis@DESKTOP-T90BDM8:~/shuttle/zort$ cargo-shuttle project start

Project creation failed

Please double-check the project status before retrying:

cargo shuttle project status

If the project creation or retrieving the status fails repeatedly, please check Shuttle status at https://status.shuttle.rs before contacting the team on the Discord server.
Error: failed to make create project request

Caused by:
    409 Conflict
    Message: project 'zort' is already running

Duplicate declaration

  • I have searched the issues and there are none like this.

Hey @ffguven, thanks for the report! The 409 error is a bug from Docker that we hit occasionally, where we send a request to the Docker API to start a project, and even though it isn't running, Docker thinks that it is. It shouldn't happen frequently, but during periods of heavy load it may happen more often. While Docker is great, and we've been able to do a lot with it, we're moving away from it in an upcoming re-architecture, which will resolve this issue. I'm happy to let you know when we open for user-testing, if you're interested!

As for the restarted project deployment still being stopped following a restart, that is because when you re-start a project, it will try to start the last running deployment. If you don't have any, it won't start any. The project represents a Docker container that is started for you, and when you make deployments you will build and start your application inside that container. In the upcoming re-architecture, however, you will not need to concern yourself with the container, there you will just run deploy.