There are multiple reasons why a CI job might not start.
There might not be a runner configured to pickup jobs with that particular set of tags
The appropriate runners might have as many parallel jobs running as they are allowed to
probably some I haven’t thought of
In the admin area, under “Runners”, you can select any runner and see what jobs it has picked up, and there you can see what jobs are “running” (and which old jobs are “passed” or “failed”).
But in some cases (almost all the ones I’ve seen) that won’t tell you why any particular job hasn’t been picked up. If the problem is that no runners will pick up jobs with a particular tag, GitLab will tell you when you look at the job (but you need to go all the way in to the page where you’d normally see the output. If the problem is that the runners are busy (according to their “concurrent”/“limit” settings, there are no hints in the UI.
(I’ve been in both situations in the past few months)