Skip to content

Error EOF on most actions #6709

@EduSantosBrito

Description

@EduSantosBrito

Observed behavior:

  • pnpm exec sst state repair --print-logs fails with Could not export state
  • pnpm exec sst deploy --print-logs fails with EOF
  • .sst/log/pulumi.log is empty
  • The failure happens immediately after INFO pulling state ...

Command Output

pnpm exec sst state repair --print-logs

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

pnpm exec sst deploy --print-logs

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.

sst.config.ts

/// <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,
    };
  },
});

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions