It seems like there might be a few things going on here.
1. One possibility is that there might be more than one agent polling for runs from the same work queue. If you have multiple agents working for the same queue, each with a concurrency limit, this could potentially cause the issue you're seeing. You can check this in your setup.
Source
2. Another possibility is related to the version of Prefect you're using. If you're using an older version, you might be using agents, which are part of the block-based deployment model. In Prefect 2.0, Workers and Work Pools are recommended instead of agents, as they simplify the specification of a flow's infrastructure and runtime environment. If you have existing agents, you can upgrade from agents to workers to significantly enhance the experience of deploying flows.
Source
3. If none of these seem to be the issue, you might want to consider a system for upgrading agent versions while there are consistent flows being sent to a workqueue or workpool. This could help ensure that your agents are always up to date and functioning correctly.
Source
I hope this helps! Let me know if you have any other questions.