\n\nThis happens on every push. It works fine on a manual run.\n\n### Steps to reproduce\n\nNo clue.\n\n### Expected behavior\n\nWorkflow run starts only one time.\n\n### System Info\n\n```shell\nWoodpecker v3.8.0\nDocker Compose v2.38.2\nDocker v28.3.2\n```\n\n### Additional context\n\ncompose logs:\n\n```\nwpci_agent | Status: Downloaded newer image for woodpeckerci/plugin-git:2.6.5\nwpci_server | {\"level\":\"error\",\"repo_id\":\"1\",\"pipeline_id\":\"21\",\"workflow_id\":\"36\",\"error\":\"stream: not found\",\"time\":\"2025-07-26T05:48:11Z\",\"message\":\"done: cannot close log stream for step 70\"}\nwpci_server | {\"level\":\"error\",\"error\":\"queue: task not found\",\"time\":\"2025-07-26T05:49:14Z\",\"message\":\"queue: evict_at_once: [38]\"}\nwpci_server | {\"level\":\"error\",\"error\":\"sql: no rows in result set\",\"time\":\"2025-07-26T05:49:14Z\",\"message\":\"queue: evict_at_once: [37]\"}\nwpci_agent | {\"level\":\"error\",\"error\":\"rpc error: code = Unknown desc = queue: task canceled\",\"time\":\"2025-07-26T05:49:14Z\",\"message\":\"grpc error: wait(): code: Unknown\"}\nwpci_agent | {\"level\":\"warn\",\"repo\":\"\u003CREPO NAME>\",\"pipeline\":\"22\",\"workflow_id\":\"37\",\"error\":\"rpc error: code = Unknown desc = queue: task canceled\",\"time\":\"2025-07-26T05:49:14Z\",\"message\":\"cancel signal received\"}\nwpci_server | {\"level\":\"error\",\"repo_id\":\"1\",\"pipeline_id\":\"22\",\"workflow_id\":\"37\",\"error\":\"sql: no rows in result set\",\"time\":\"2025-07-26T05:49:15Z\",\"message\":\"queue.Done: cannot ack workflow\"}\nwpci_server | {\"level\":\"error\",\"repo_id\":\"1\",\"pipeline_id\":\"22\",\"workflow_id\":\"37\",\"error\":\"stream: not found\",\"time\":\"2025-07-26T05:49:15Z\",\"message\":\"done: cannot close log stream for step 71\"}\nwpci_server | {\"level\":\"error\",\"repo_id\":\"1\",\"pipeline_id\":\"22\",\"workflow_id\":\"37\",\"error\":\"stream: not found\",\"time\":\"2025-07-26T05:49:15Z\",\"message\":\"done: cannot close log stream for step 72\"}\nwpci_server | {\"level\":\"error\",\"error\":\"sql: no rows in result set\",\"time\":\"2025-07-26T05:49:15Z\",\"message\":\"pull queue item: 38: failed to remove from backup\"}\nwpci_server | {\"level\":\"error\",\"repo_id\":\"1\",\"pipeline_id\":\"22\",\"workflow_id\":\"38\",\"error\":\"stream: not found\",\"time\":\"2025-07-26T05:49:15Z\",\"message\":\"done: cannot close log stream for step 73\"}\nwpci_server | {\"level\":\"error\",\"repo_id\":\"1\",\"pipeline_id\":\"22\",\"workflow_id\":\"38\",\"error\":\"stream: not found\",\"time\":\"2025-07-26T05:49:15Z\",\"message\":\"done: cannot close log stream for step 74\"}\nwpci_agent | latest: Pulling from woodpeckerci/plugin-docker-buildx\n```\n\n.woodpecker/build.yaml\n\n```yaml\nsteps:\n build:\n image: woodpeckerci/plugin-docker-buildx\n when:\n - branch: main\n event: push\n settings:\n # intentionally left out\n```\n\n.woodpecker/deploy.yaml\n\n```yaml\ndepends_on: [ build ]\n\nsteps:\n deploy:\n image: ghcr.io/appleboy/drone-ssh\n when:\n - branch: main\n event: push\n environment:\n # intentionally left out\n settings:\n # intentionally left out\n```\n\ncompose.yaml\n\n```yaml\nservices:\n\n wpci_server:\n image: woodpeckerci/woodpecker-server:v3-alpine\n container_name: wpci_server\n restart: unless-stopped\n ports:\n - 127.0.0.1:9082:9082\n volumes:\n - ./server:/var/lib/woodpecker\n environment:\n - WOODPECKER_FORGEJO=true\n - WOODPECKER_FORGEJO_URL=https://***.org\n - WOODPECKER_FORGEJO_CLIENT=***\n - WOODPECKER_FORGEJO_SECRET=***\n - WOODPECKER_OPEN=false\n - WOODPECKER_ADMIN=***\n - WOODPECKER_HOST=https://***.org\n - WOODPECKER_AGENT_SECRET=***\n - WOODPECKER_GRPC_ADDR=:9090\n - WOODPECKER_SERVER_ADDR=:9082\n - WOODPECKER_PLUGINS_PRIVILEGED=woodpeckerci/plugin-docker-buildx\n \n wpci_agent:\n image: woodpeckerci/woodpecker-agent:v3-alpine\n container_name: wpci_agent\n command: agent\n restart: unless-stopped\n depends_on:\n - wpci_server\n volumes:\n - ./agent:/etc/woodpecker\n - /var/run/docker.sock:/var/run/docker.sock\n environment:\n - WOODPECKER_SERVER=wpci_server:9090\n - WOODPECKER_AGENT_SECRET=***\n - WOODPECKER_PLUGINS_PRIVILEGED=woodpeckerci/plugin-docker-buildx\n```\n\n\n### Validations\n\n- [x] Read the [docs](https://woodpecker-ci.org/docs/intro).\n- [x] Check that there isn't [already an issue](https://github.com/woodpecker-ci/woodpecker/issues) that reports the same bug to avoid creating a duplicate.\n- [x] Checked that the bug isn't fixed in the `next` version already [https://woodpecker-ci.org/versions]",[3248],{"name":3184,"color":3185},5364,"Workflow run starts two times, fails one immediately","2025-07-26T06:50:04Z","https://github.com/woodpecker-ci/woodpecker/issues/5364",0.78745085,{"description":3255,"labels":3256,"number":3257,"owner":3161,"repository":3162,"state":3217,"title":3258,"updated_at":3259,"url":3260,"score":3261},"What happens if the server goes offline, but the agent is still running pipelines. Will the agent buffer logs and status changes and send them again, after the server comes back online?\r\n\r\nThis should be tested and if necessary a roadmap with improvements should be created.",[],1776,"Test agent running pipelines while server is offline","2023-08-08T08:17:27Z","https://github.com/woodpecker-ci/woodpecker/issues/1776",0.78760433,["Reactive",3263],{},["Set"],["ShallowReactive",3266],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$fZge3RCUm4ccccVZKSL8kS2KsDhajM9L6Q2pTDSx6w8s":-1},"/woodpecker-ci/woodpecker/1333"]