phacility/phabricator · info · Exception
(This is an explicit exception.)
Error message
(This is an explicit exception.)
What it means
HarbormasterThrowExceptionBuildStep is a deliberate test/debug step (in the test build step group) whose execute() unconditionally throws this exception. It exists so administrators can exercise Harbormaster's failure handling: build targets failing, UI error states, and retry behavior. Seeing this error means a plan intentionally contains the 'Throw Exception' step.
Source
Thrown at src/applications/harbormaster/step/HarbormasterThrowExceptionBuildStep.php:22
extends HarbormasterBuildStepImplementation {
public function getName() {
return pht('Throw Exception');
}
public function getGenericDescription() {
return pht('Throw an exception.');
}
public function getBuildStepGroupKey() {
return HarbormasterTestBuildStepGroup::GROUPKEY;
}
public function execute(
HarbormasterBuild $build,
HarbormasterBuildTarget $build_target) {
throw new Exception(pht('(This is an explicit exception.)'));
}
}
View on GitHub (pinned to 5720a38cfe)
Solutions
- If this is production, edit the build plan and remove the 'Throw Exception' step.
- If testing, treat the failure as expected and use it to validate retry/failure behavior.
Defensive patterns
Strategy: validation
Validate before calling
// Audit production plans for the test step before enabling them:
foreach ($plan->getSteps() as $step) {
if ($step instanceof HarbormasterThrowExceptionBuildStep) {
// remove this step from production build plans
}
} Prevention
- Keep diagnostic steps out of production plans; review plan contents before enabling automation.
- Name test plans clearly (e.g. prefix 'TEST -') so they are not copied into production.
When it happens
Trigger: A build plan includes the 'Throw Exception' step (from the test/diagnostics group) and a build ran it. The exception is thrown on every execution, by design.
Common situations: Testing build failure notifications or UI; verifying how plans behave when a step fails; a leftover test step accidentally left in a production build plan.
Related errors
- Invalid or unknown object ("%s") for land operation, expecte
- Object "%s" is not a HarbormasterBuildable (it is a "%s"). N
- Choose a build log to rebuild with "--id", or rebuild all lo
- You can not specify both "--id" and "--all". Choose one or t
- Unable to load build log "%s".
AI-assisted analysis of phacility/phabricator@5720a38cfe (2026-08-21).
Data as JSON: /api/errors/e5b05357a45dfd52.
Report an issue: GitHub.