{"record":{"id":"94c1520109a99147","repo":"paperclipai/paperclip","slug":"requested-port-is-busy-using-next-free-port-requ","errorCode":null,"errorMessage":"Requested port is busy; using next free port (requestedPort=${requestedListenPort}, selectedPort=${listenPort})","messagePattern":"Requested port is busy; using next free port \\(requestedPort=(.+?), selectedPort=(.+?)\\)","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"server/src/index.ts","lineNumber":894,"sourceCode":"    uiMode,\n    serverPort: listenPort,\n    storageService,\n    feedbackExportService: feedback,\n    databaseBackupService: {\n      runManualBackup: async () => {\n        const result = await runServerDatabaseBackup(\"manual\");\n        if (!result) {\n          throw conflict(\"Database backup already in progress\");\n        }\n        return result;\n      },\n    },\n    databaseBackupHealth: config.databaseBackupEnabled\n      ? {\n          enabled: config.databaseBackupEnabled,\n          backupDir: config.databaseBackupDir,\n          maxAgeHours: databaseBackupMaxAgeHours,\n          alertFile: databaseBackupAlertFile,\n          alertFiles: databaseBackupAlertFiles,\n        }\n      : undefined,\n    deploymentMode: config.deploymentMode,\n    deploymentExposure: config.deploymentExposure,\n    allowedHostnames: config.allowedHostnames,\n    bindHost: config.host,\n    authPublicBaseUrl: config.authPublicBaseUrl,\n    authReady,\n    companyDeletionEnabled: config.companyDeletionEnabled,\n    pluginMigrationDb: pluginMigrationDb as any,\n    betterAuthHandler,\n    resolveSession,\n    pluginWorkerManager,\n    decisionServiceOptions,\n    managedPluginAutoInstall,\n  });\n  const server = createServer(app as unknown as Parameters<typeof createServer>[0]);","sourceCodeStart":876,"sourceCodeEnd":912,"githubUrl":"https://github.com/paperclipai/paperclip/blob/01ad8584922b5d85292b1723cae71fa0d9b07a19/server/src/index.ts#L876-L912","documentation":"Startup warning in startServer's HTTP listener setup. Fires when the requested listen port (requestedListenPort) is already bound, so the server falls back to the next free port and logs both ports; dev/demo convenience, not an error.","triggerScenarios":"Thrown at server/src/index.ts:775 when the library encounters an invalid state.","commonSituations":"Logged at startup when the requested listen port is busy and the server automatically selects the next available port.","solutions":["No action needed; the server bound to the next free port.","To use the requested port, stop the process occupying it or configure a different listen port."],"exampleFix":null,"handlingStrategy":"fallback","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"01ad8584922b5d85292b1723cae71fa0d9b07a19","analyzedAt":"2026-08-18T22:49:45.177Z","contentChangedAt":"2026-08-18T22:49:45.177Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}