paperclipai/paperclip · error

Skipping scheduled database backup because a previous backup

Error message

Skipping scheduled database backup because a previous backup is still running

What it means

Scheduled-backup skip log in startServer's backup loop. Fires when runServerDatabaseBackup is invoked while the previous backup cycle is still in flight (databaseBackupInFlight flag set); the tick is skipped to avoid concurrent backup runs.

Source

Thrown at server/src/index.ts:785

    throw err;
  }

  // Operator setting defaults (PAPERCLIP_SETTING_DEFAULTS). Same fail-closed
  // posture as the managed-config parse above: malformed JSON or an invalid
  // value for a known field refuses startup; unknown field names only warn.
  try {
    const operatorDefaults = getOperatorSettingDefaults();
    if (operatorDefaults && Object.keys(operatorDefaults).length > 0) {
      logger.warn(
        { defaultedSettings: Object.keys(operatorDefaults).sort() },
        "operator setting defaults active",
      );
    }
  } catch (err) {
    logger.error({ err }, "invalid PAPERCLIP_SETTING_DEFAULTS; refusing to start (fail closed)");
    throw err;
  }

  const uiMode = config.uiDevMiddleware ? "vite-dev" : config.serveUi ? "static" : "none";
  const storageService = createStorageServiceFromConfig(config);
  const feedback = feedbackService(db as any, {
    shareClient: createFeedbackTraceShareClientFromConfig(config),
  });
  const backupSettingsSvc = instanceSettingsService(db);
  const databaseBackupMaxAgeHours = Math.max(
    1,
    Number(process.env.PAPERCLIP_DB_BACKUP_MAX_AGE_HOURS) ||
      Math.max(26, Math.ceil((config.databaseBackupIntervalMinutes / 60) * 2)),
  );
  const databaseBackupAlertFile =
    process.env.PAPERCLIP_DB_BACKUP_ALERT_FILE ||
    resolve(config.databaseBackupDir, "..", "health", "db-backup-to-s3.failure");
  const databaseBackupAlertFiles = [
    databaseBackupAlertFile,
    resolve(config.databaseBackupDir, "db-backup-to-s3.failure"),
    resolve(config.databaseBackupDir, "..", "db-backup-to-s3.failure"),

View on GitHub (pinned to 01ad858492)

Solutions

  1. No immediate action needed; the next scheduled run will back up once the current backup finishes.
  2. If backups repeatedly overlap, investigate why the backup is slow (database size, disk I/O) or increase the backup interval.
Defensive patterns

Strategy: fallback

When it happens

Trigger: Thrown at server/src/index.ts:666 when the library encounters an invalid state.

Common situations: Logged when a scheduled database backup fires while a previous backup is still running; the run is skipped to avoid concurrent backups.


AI-assisted analysis of paperclipai/paperclip@01ad858492 (2026-08-18). Data as JSON: /api/errors/64e062618a5d779c. Report an issue: GitHub.