Branch Remote Run Trigger Never Fires or Starts Job
I have my VCS Root set as follows:
Default branch:
refs/heads/main
Branch specification:
+:refs/heads/main
+:refs/heads/(remote-run/*)
No commit hook.
The Branch Remote Run Trigger is set to
Git: refs/heads/remote-run/*
When I push changes to:
git push origin HEAD:remote-run/<some branch name>
The Pending Changes show in TeamCity, but no job is ever started.
Please sign in to leave a comment.
The Branch Remote Run Trigger only processes branches that are not matched (and not excluded) by the VCS root's branch specification: Branch Remote Run Trigger.
Your branch specification includes
+:refs/heads/(remote-run/*), so TeamCity already tracks `remote-run/*` as a regular branch — that's why it shows up correctly in Pending Changes. Because the branch is matched by the specification, the Branch Remote Run Trigger skips it and never starts a build.Remove
+:refs/heads/(remote-run/*)from the VCS root's branch specification and keep only+:refs/heads/main. The trigger's own pattern (refs/heads/remote-run/*) will then claim the branch and start the build.Excluding the branch instead
(-:refs/heads/remote-run/*)won't help: the trigger skips both matched and excluded branches.One more thing to check: the trigger only fires on a commit TeamCity hasn't seen yet, so make sure the
remote-run/<branch name>ref points at a revision newer than what's already tracked.Thank you for the quick reply.
I've already switched our builds to use the “Pull Requests” build feature, so I think we are just going to abandon “Personal Builds” completely and use GitHub PRs now.
I would still like to find a way to route the builds that are triggered for Pull Requests to my “Test Builds” agent pool, if you have any ideas for that?
Agent pools are assigned at the project level, not per trigger. A build configuration can only run on agents from the pools assigned to its project, whatever triggered the build. There's no setting that routes "builds triggered by Pull Requests" to a pool directly.
If PR builds already run in their own configuration, give that configuration's project access only to the Test Builds pool. Do this under Administration | Agent Pools | Test Builds | Projects.
If PR builds share a configuration with other triggers, split them with an Agent Requirement. In TeamCity 2026.1 and later, the Pull Requests build feature sets teamcity.pullRequest.number to the literal string N/A on non-PR builds, rather than leaving it empty. A plain "exists" condition then matches every build, not just PR builds. Use does not equal
N/Ainstead, or disable the placeholder with the internal propertyteamcity.pullRequests.parametersProvider.placeHolderParameters.enabled=falseand use "exists" as before. Either way, add a second requirement keyed to a parameter unique to the Test Builds pool's agents. That way, the configuration only picks Test Builds agents for the PR-triggered case.