anomalyco/sst · error · VisibleError
No site found at "${path.resolve(sitePath)}".
Error message
No site found at "${path.resolve(sitePath)}". What it means
normalizeSitePath validates the `path` argument of a static site component: if the configured path does not exist on disk, it throws this error with the resolved absolute path to make the misconfiguration obvious.
Source
Thrown at platform/src/components/base/base-static-site.ts:219
export function prepare(args: BaseStaticSiteArgs) {
const sitePath = normalizeSitePath();
const environment = normalizeEnvironment();
const indexPage = normalizeIndexPage();
generateViteTypes();
return {
sitePath,
environment,
indexPage,
};
function normalizeSitePath() {
return output(args.path).apply((sitePath) => {
if (!sitePath) return ".";
if (!fs.existsSync(sitePath)) {
throw new VisibleError(`No site found at "${path.resolve(sitePath)}".`);
}
return sitePath;
});
}
function normalizeEnvironment() {
return output(args.environment).apply((environment) => environment ?? {});
}
function normalizeIndexPage() {
return output(args.indexPage).apply(
(indexPage) => indexPage ?? "index.html",
);
}
function generateViteTypes() {
return all([sitePath, args.vite, environment]).apply(
([sitePath, vite, environment]) => {View on GitHub (pinned to a0bd20f762)
Solutions
- Correct the `path` to the actual directory containing your site (relative to sst.config.ts).
- Verify the folder exists locally with the exact name/case (ls).
- In CI, ensure the site source is checked out (submodules, monorepo sparse checkout).
Example fix
// before
new sst.aws.StaticSite("Site", { path: "./fronted" });
// after
new sst.aws.StaticSite("Site", { path: "./frontend" }); Defensive patterns
Strategy: validation
Validate before calling
import fs from "node:fs";
import path from "node:path";
const sitePath = "./frontend";
if (!fs.existsSync(sitePath))
throw new Error(`Site path does not exist: ${path.resolve(sitePath)}`); Prevention
- Verify site directories exist with exact spelling/case before deploy
- In CI, confirm checkout includes the site folder (submodules, sparse checkout)
- Prefer configuring paths relative to sst.config.ts consistently
When it happens
Trigger: `new sst.aws.StaticSite("Site", { path: "./src/site" })` where that directory doesn't exist (typo, wrong cwd, directory not checked out).
Common situations: Running sst.config.ts from a different working directory than expected; misspelled or case-mismatched folder names; missing git submodule or generated directory; deploying in CI without the site folder.
Related errors
- No build output found at "${path.resolve(outputPath)}".
- Missing "name" for domain.
- Need to provide a validated certificate via "cert" when DNS
- Invalid resolver ${operation}
- Cannot configure "pauseAfter" when the minimum ACU is not 0
AI-assisted analysis of anomalyco/sst@a0bd20f762 (2026-08-30).
Data as JSON: /api/errors/8176e1f15a1541a2.
Report an issue: GitHub.