phacility/phabricator · error · Exception
Failed to load favicon template builtin "%s".
Error message
Failed to load favicon template builtin "%s".
What it means
The selected favicon template is a Celerity builtin (source-type 'builtin'); PhabricatorFile::loadBuiltin($viewer, $resource['source']) returned no file, meaning the builtin by that name could not be loaded or generated. The template map references a builtin resource that does not actually exist in the builtin registry.
Source
Thrown at src/applications/files/favicon/PhabricatorFaviconRef.php:420
pht(
'Found no template resource (for emblem "%s") with dimensions '.
'%dx%d.',
$emblem,
$width,
$height));
}
}
$scores = msortv($scores, 'getSelf');
$best_score = head_key($scores);
$viewer = $this->getViewer();
$resource = $all_resources[$best_score];
if ($resource['source-type'] === 'builtin') {
$file = PhabricatorFile::loadBuiltin($viewer, $resource['source']);
if (!$file) {
throw new Exception(
pht(
'Failed to load favicon template builtin "%s".',
$resource['source']));
}
} else {
$file = id(new PhabricatorFileQuery())
->setViewer($viewer)
->withPHIDs(array($resource['source']))
->executeOne();
if (!$file) {
throw new Exception(
pht(
'Failed to load favicon template with PHID "%s".',
$resource['source']));
}
}
return array(View on GitHub (pinned to 5720a38cfe)
Solutions
- Correct the resource 'source' to a builtin that exists (verify the name against the Celerity builtin map / resources/builtin directory)
- If it is a genuinely new builtin, register its file so loadBuiltin() can produce it
- After fixing, re-request the favicon to bypass any cached failure
Defensive patterns
Strategy: try-catch
Validate before calling
$file = PhabricatorFile::loadBuiltin($viewer, $resource['source']);
if (!$file) {
// builtin missing: skip this template entry instead of throwing
} Try / catch
catch Exception, log the missing builtin name, and fall back to another registered template for the same dimensions.
Prevention
- Keep favicon template maps in sync with shipped builtins after every upgrade
- Register custom builtins before referencing them in template configuration
When it happens
Trigger: A favicon template whose 'source' names a builtin that is not registered — a typo, a builtin removed or renamed during an upgrade, or a custom builtin whose registration is missing.
Common situations: Upgrades that rename or delete builtins while custom favicon config keeps the old name; forks adding template entries pointing at never-registered builtins.
Related errors
- Failed to load favicon template with PHID "%s".
- No resource source exists with name "%s"!
- Attempting to resolve unknown resource, "%s".
- Only static resources may be served.
- Found no background template resource for dimensions %dx%d.
AI-assisted analysis of phacility/phabricator@5720a38cfe (2026-08-21).
Data as JSON: /api/errors/bef996cdc09cc57c.
Report an issue: GitHub.