{"record":{"id":"f055db01afe33e87","repo":"paperclipai/paperclip","slug":"could-not-open-your-browser-automatically-open-th","errorCode":null,"errorMessage":"Could not open your browser automatically. Open this URL manually:\n${companyUrl}","messagePattern":"Could not open your browser automatically\\. Open this URL manually:\n(.+?)","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"cli/src/commands/client/company.ts","lineNumber":1903,"sourceCode":"            printCompanyImportView(\n              \"Import Result\",\n              renderCompanyImportResult(imported, {\n                targetLabel,\n                companyUrl,\n                infoMessages: adapterMessages,\n              }),\n              { interactive: interactiveView },\n            );\n            if (interactiveView && companyUrl) {\n              const openImportedCompany = await p.confirm({\n                message: \"Open the imported company in your browser?\",\n                initialValue: true,\n              });\n              if (!p.isCancel(openImportedCompany) && openImportedCompany) {\n                if (await openUrl(companyUrl)) {\n                  p.log.info(`Opened ${companyUrl}`);\n                } else {\n                  p.log.warn(`Could not open your browser automatically. Open this URL manually:\\n${companyUrl}`);\n                }\n              }\n            }\n          }\n        } catch (err) {\n          handleCommandError(err);\n        }\n      }),\n  );\n\n  addCommonClientOptions(\n    company\n      .command(\"delete\")\n      .description(\"Delete a company by ID or shortname/prefix (destructive)\")\n      .argument(\"<selector>\", \"Company ID or issue prefix (for example PAP)\")\n      .option(\n        \"--by <mode>\",\n        \"Selector mode: auto | id | prefix\",","sourceCodeStart":1885,"sourceCodeEnd":1921,"githubUrl":"https://github.com/paperclipai/paperclip/blob/120ae5428fa29bee300bcf806491cd4d965fbb7c/cli/src/commands/client/company.ts#L1885-L1921","documentation":"After a successful company import, the CLI offers to open the imported company's dashboard URL. openUrl(companyUrl) resolves false when no browser opener could be spawned (xdg-open/open/start missing or failing), so the CLI falls back to printing the URL for manual opening. The import itself already succeeded.","triggerScenarios":"Interactive import (interactiveView true), companyUrl built from the imported company's issuePrefix, user confirms 'Open the imported company in your browser?', and openUrl returns false — typical over SSH, in containers, or on Linux without xdg-utils.","commonSituations":"Running the CLI over SSH with no local display; minimal container images without xdg-open; WSL without a Windows browser association; $BROWSER unset or pointing at a broken command.","solutions":["Copy the printed URL and open it manually — nothing else is needed.","Set the BROWSER environment variable (e.g. export BROWSER='wslview \"%s\"' on WSL, or 'firefox %s').","On Linux install xdg-utils so xdg-open exists.","Over SSH, forward the port (ssh -L 3100:localhost:3100) and open the localhost URL locally."],"exampleFix":null,"handlingStrategy":"fallback","validationCode":"import { which } from \"shelljs\"; // or: command -v xdg-open\nconst hasOpener = process.platform === \"darwin\" || process.platform === \"win32\" || Boolean(which(\"xdg-open\"));","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Install xdg-utils on Linux hosts that run the CLI interactively.","Set $BROWSER (or wslview on WSL) so the opener has something to dispatch to.","Treat this warning as success for the import itself; only the convenience open failed.","Over SSH, prefer port forwarding to browser opening."],"tags":["cli","browser","open-url","import","fallback"],"backgroundTag":"open-browser-failed","analyzedSha":"120ae5428fa29bee300bcf806491cd4d965fbb7c","analyzedAt":"2026-08-18T22:49:45.177Z","schemaVersion":2},"datasetVersion":"2026-08-22T09:17:25.309Z"}