\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]",[3227],{"name":3154,"color":3155},5364,"Workflow run starts two times, fails one immediately","2025-07-26T06:50:04Z","https://github.com/woodpecker-ci/woodpecker/issues/5364",0.6868496,{"description":3234,"labels":3235,"number":3237,"owner":3143,"repository":3144,"state":3205,"title":3238,"updated_at":3239,"url":3240,"score":3241},"### Component\n\nserver\n\n### Describe the bug\n\nWhen a pipeline with multiple workflows starts a correct status is sent at first BitBucket correctly displays that build is in progress. When the build finishes however, only one build is displayed as finished but the other one is still in progress marking the whole commit as in progress(this is internal BitBucket logic). \n\nHere is a pipeline that has two workflows:\n\n\n\nAnd here is the outcome on BitBucket:\n\n\n\nI asked @langecode if he can take a look and we realized that there is a problem in BitBucket forge implementation of `Status` function. It looks like that for each call of `Status` function we send a status of the whole pipeline when we should've sent a status of individual workflows. I.e. change status of https://github.com/woodpecker-ci/woodpecker/blob/main/server/forge/bitbucketdatacenter/bitbucketdatacenter.go#L314\n\nTo:\n```go\nState: convertStatus(workflow.State)\n```\n\n### Steps to reproduce\n\n1. Run woodpecker with BitBucket Datacenter forge\n2. Create a pipeline that has multiple workflows\n3. Let the pipeline finish on woodpecker\n4. Observe the build statuses on the commit in BitBucket\n\n### Expected behavior\n\n_No response_\n\n### System Info\n\n```shell\nWoodpecker version: v3.5.2\nBitBucket Datacenter version: v8.18.1\n```\n\n### Additional context\n\n_No response_\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]",[3236],{"name":3154,"color":3155},5177,"Statuses get incorrectly reported for multi workflow pipelines on BitBucket","2025-05-19T11:01:04Z","https://github.com/woodpecker-ci/woodpecker/issues/5177",0.70000064,["Reactive",3243],{},["Set"],["ShallowReactive",3246],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$fnW_7n49dENK9Wsg4tRR-eFRzLjSNLwxPou-5UzTSidE":-1},"/woodpecker-ci/woodpecker/4052"]