time=2026-04-09T21:09:04.806+02:00 level=INFO msg="checking for pulumi" path="/Users/brito/Library/Application Support/sst/bin/pulumi"
time=2026-04-09T21:09:05.130+02:00 level=INFO msg="checking for bun" path="/Users/brito/Library/Application Support/sst/bin/bun"
time=2026-04-09T21:09:05.148+02:00 level=INFO msg="initializing project" version=4.7.0
time=2026-04-09T21:09:05.149+02:00 level=INFO msg="esbuild building" out=/Users/brito/Dev/rhaytomation/.sst/platform/sst.config.1775761745148.mjs
time=2026-04-09T21:09:05.158+02:00 level=INFO msg="esbuild built" outfile=/Users/brito/Dev/rhaytomation/.sst/platform/sst.config.1775761745148.mjs
time=2026-04-09T21:09:05.159+02:00 level=INFO msg="evaluating config"
time=2026-04-09T21:09:05.193+02:00 level=INFO msg="config evaluated"
time=2026-04-09T21:09:05.194+02:00 level=INFO msg="checking platform"
time=2026-04-09T21:09:05.194+02:00 level=INFO msg="checking provider" name=cloudflare version=6.14.0 compare=6.14.0
time=2026-04-09T21:09:05.194+02:00 level=INFO msg="loading home"
time=2026-04-09T21:09:05.195+02:00 level=INFO msg="cloudflare account selected" account=[REDACTED_ACCOUNT_ID]
time=2026-04-09T21:09:05.765+02:00 level=INFO msg="found existing bucket" bucket=sst-state
time=2026-04-09T21:09:05.766+02:00 level=INFO msg="loaded config" app=rhaytomation stage=brito
time=2026-04-09T21:09:05.766+02:00 level=INFO msg="INFO locking app=rhaytomation stage=brito"
time=2026-04-09T21:09:05.766+02:00 level=INFO msg="INFO getting data key=lock app=rhaytomation stage=brito"
time=2026-04-09T21:09:06.417+02:00 level=INFO msg="INFO putting update app=rhaytomation stage=brito"
time=2026-04-09T21:09:06.752+02:00 level=INFO msg="INFO pulling state app=rhaytomation stage=brito out=/Users/brito/Dev/rhaytomation/.sst/pulumi/fe628c5a1899bb5dcfa937d2/.pulumi/stacks/rhaytomation/brito.json"
time=2026-04-09T21:09:06.943+02:00 level=INFO msg="INFO putting update app=rhaytomation stage=brito"
time=2026-04-09T21:09:07.277+02:00 level=INFO msg="INFO unlocking app=rhaytomation stage=brito"
time=2026-04-09T21:09:07.846+02:00 level=ERROR msg="exited with error" err=EOF
✕ Could not export state
time=2026-04-09T21:09:04.806+02:00 level=INFO msg="checking for pulumi" path="/Users/brito/Library/Application Support/sst/bin/pulumi"
time=2026-04-09T21:09:05.131+02:00 level=INFO msg="checking for bun" path="/Users/brito/Library/Application Support/sst/bin/bun"
time=2026-04-09T21:09:05.148+02:00 level=INFO msg="initializing project" version=4.7.0
time=2026-04-09T21:09:05.149+02:00 level=INFO msg="esbuild building" out=/Users/brito/Dev/rhaytomation/.sst/platform/sst.config.1775761745148.mjs
time=2026-04-09T21:09:05.158+02:00 level=INFO msg="esbuild built" outfile=/Users/brito/Dev/rhaytomation/.sst/platform/sst.config.1775761745148.mjs
time=2026-04-09T21:09:05.159+02:00 level=INFO msg="evaluating config"
time=2026-04-09T21:09:05.193+02:00 level=INFO msg="config evaluated"
time=2026-04-09T21:09:05.194+02:00 level=INFO msg="checking platform"
time=2026-04-09T21:09:05.194+02:00 level=INFO msg="checking provider" name=cloudflare version=6.14.0 compare=6.14.0
time=2026-04-09T21:09:05.194+02:00 level=INFO msg="loading home"
time=2026-04-09T21:09:05.195+02:00 level=INFO msg="cloudflare account selected" account=[REDACTED_ACCOUNT_ID]
time=2026-04-09T21:09:05.774+02:00 level=INFO msg="found existing bucket" bucket=sst-state
time=2026-04-09T21:09:05.774+02:00 level=INFO msg="loaded config" app=rhaytomation stage=brito
time=2026-04-09T21:09:05.774+02:00 level=INFO msg="initializing ui" isTTY=false
time=2026-04-09T21:09:05.775+02:00 level=INFO msg="server port assigned" port=13557
time=2026-04-09T21:09:05.775+02:00 level=INFO msg="running stack command" service=project.run cmd=deploy
time=2026-04-09T21:09:05.775+02:00 level=INFO msg="INFO locking app=rhaytomation stage=brito"
time=2026-04-09T21:09:05.775+02:00 level=INFO msg="INFO getting data key=lock app=rhaytomation stage=brito"
time=2026-04-09T21:09:05.775+02:00 level=INFO msg=starting service=server
SST 4.7.0 ready!
➜ App: rhaytomation
Stage: brito
~ Deploy
time=2026-04-09T21:09:05.777+02:00 level=INFO msg=server service=server addr=0.0.0.0:13557
time=2026-04-09T21:09:05.777+02:00 level=INFO msg="server ready to accept connections" service=server
time=2026-04-09T21:09:06.367+02:00 level=INFO msg="INFO putting update app=rhaytomation stage=brito"
time=2026-04-09T21:09:06.735+02:00 level=INFO msg="INFO getting passphrase app=rhaytomation stage=brito"
time=2026-04-09T21:09:06.923+02:00 level=INFO msg="INFO pulling state app=rhaytomation stage=brito out=/Users/brito/Dev/rhaytomation/.sst/pulumi/fe628c5a18907ee7728e4e64/.pulumi/stacks/rhaytomation/brito.json"
time=2026-04-09T21:09:07.185+02:00 level=INFO msg="state file might be corrupted" service=project.run updateID=fe628c5a18907ee7728e4e64 err=EOF
| Error EOF
time=2026-04-09T21:09:07.188+02:00 level=INFO msg="INFO unlocking app=rhaytomation stage=brito"
time=2026-04-09T21:09:07.503+02:00 level=INFO msg="shutting down server" service=server
time=2026-04-09T21:09:07.503+02:00 level=INFO msg="server done" service=server
time=2026-04-09T21:09:07.503+02:00 level=ERROR msg="exited with error" err=EOF
✕ Unexpected error occurred. Please run with --print-logs or check .sst/log/sst.log if available.
/// <reference path="./.sst/platform/config.d.ts" />
export default $config({
app(input) {
return {
name: "rhaytomation",
removal: input?.stage === "production" ? "retain" : "remove",
home: "cloudflare",
providers: { cloudflare: "6.14.0" },
};
},
async run() {
const workerTransform = {
worker: (args) => {
args.compatibilityFlags = Array.from(
new Set([
"nodejs_compat",
"global_fetch_strictly_public",
...(args.compatibilityFlags ?? []),
]),
);
args.observability = {
enabled: true,
headSamplingRate: 1,
};
},
};
const database = new sst.cloudflare.D1("MainDatabase");
const artifactsBucket = new sst.cloudflare.Bucket("ArtifactsBucket");
const openCodeApiKey = new sst.Secret("OpenCodeApiKey");
const resendApiKey = new sst.Secret("ResendApiKey");
const digestRecipientEmail = new sst.Secret("DigestRecipientEmail");
const digestSenderEmail = new sst.Secret("DigestSenderEmail");
const sharedEnvironment = {
NODE_ENV: $app.stage === "production" ? "production" : "development",
DISCOVERY_MODEL: "kimi-k2.5",
RANKING_MODEL: "glm-5.1",
OPENCODE_BASE_URL: "https://opencode.ai/zen/go/v1",
OPENCODE_PROVIDER_ID: "opencode-go",
SCHEDULER_ENABLED: "true",
SCHEDULER_TIMEZONE: "Europe/Amsterdam",
};
const sharedLinks = [
database,
artifactsBucket,
openCodeApiKey,
resendApiKey,
digestRecipientEmail,
digestSenderEmail,
];
const api = new sst.cloudflare.Worker("Api", {
handler: "packages/server/src/worker.ts",
url: true,
link: sharedLinks,
environment: sharedEnvironment,
transform: workerTransform,
});
new sst.cloudflare.Cron("StartupDiscoveryCron", {
schedules: ["0 * * * *"],
job: {
handler: "packages/server/src/cron.ts",
link: sharedLinks,
environment: {
...sharedEnvironment,
CRON_TASK: "startup-discovery",
},
transform: workerTransform,
},
});
new sst.cloudflare.Cron("JobMatchingCron", {
schedules: ["0 * * * *"],
job: {
handler: "packages/server/src/cron.ts",
link: sharedLinks,
environment: {
...sharedEnvironment,
CRON_TASK: "job-matching",
},
transform: workerTransform,
},
});
new sst.cloudflare.Cron("DigestSendCron", {
schedules: ["0 * * * *"],
job: {
handler: "packages/server/src/cron.ts",
link: sharedLinks,
environment: {
...sharedEnvironment,
CRON_TASK: "digest-send",
},
transform: workerTransform,
},
});
return {
api: api.url,
mainDatabaseId: database.id,
artifactsBucketName: artifactsBucket.name,
};
},
});
Observed behavior:
pnpm exec sst state repair --print-logsfails withCould not export statepnpm exec sst deploy --print-logsfails withEOF.sst/log/pulumi.logis emptyINFO pulling state ...Command Output
pnpm exec sst state repair --print-logspnpm exec sst deploy --print-logssst.config.ts