{"record":{"id":"e56033daa0cdb1c2","repo":"paperclipai/paperclip","slug":"invalid-project-workspace-payload","errorCode":null,"errorMessage":"Invalid project workspace payload","messagePattern":"Invalid project workspace payload","errorType":"http","errorClass":null,"httpStatus":422,"severity":"error","filePath":"server/src/routes/projects.ts","lineNumber":236,"sourceCode":"    res.json(summary);\n  });\n\n  router.post(\"/companies/:companyId/projects\", validate(createProjectSchema), async (req, res) => {\n    const companyId = req.params.companyId as string;\n    assertCompanyAccess(req, companyId);\n    type CreateProjectPayload = Parameters<typeof svc.create>[1] & {\n      workspace?: Parameters<typeof svc.createWorkspace>[1];\n      repositoryIds?: string[];\n    };\n\n    const { workspace, repositoryIds, ...projectData } = req.body as CreateProjectPayload;\n    await assertProjectEnvironmentSelection(\n      companyId,\n      readProjectPolicyEnvironmentId(projectData.executionWorkspacePolicy),\n    );\n    assertNoAgentHostWorkspaceCommandMutation(\n      req,\n      [\n        ...collectProjectExecutionWorkspaceCommandPaths(projectData.executionWorkspacePolicy),\n        ...collectProjectWorkspaceCommandPaths(workspace, \"workspace\"),\n      ],\n    );\n    await assertNoManagedSandboxWorkspacePath(workspace);\n    if (projectData.env !== undefined) {\n      projectData.env = await secretsSvc.normalizeEnvBindingsForPersistence(\n        companyId,\n        projectData.env,\n        { strictMode: strictSecretsMode, fieldPath: \"env\" },\n      );\n    }\n    if (workspace && repositoryIds) throw unprocessable(\"Use either workspace or repositoryIds when creating a project\");\n    const repositories = repositoryIds ? await selectedRepositories(req, companyId, repositoryIds) : null;\n    const project = repositories ? await svc.createWithRepositories(companyId, projectData, repositories) : await svc.create(companyId, projectData);\n    if (project.env) {\n      await secretsSvc.syncEnvBindingsForTarget?.(\n        companyId,","sourceCodeStart":218,"sourceCodeEnd":254,"githubUrl":"https://github.com/paperclipai/paperclip/blob/01ad8584922b5d85292b1723cae71fa0d9b07a19/server/src/routes/projects.ts#L218-L254","documentation":"Error \"Invalid project workspace payload\" thrown in paperclipai/paperclip.","triggerScenarios":"Thrown at server/src/routes/projects.ts:192 when the library encounters an invalid state.","commonSituations":"Validation error returned when the project workspace create/update payload fails schema validation.","solutions":["Send a valid JSON body matching the project workspace payload schema.","Check required fields and their types in the workspace payload against the API contract."],"exampleFix":null,"handlingStrategy":null,"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-14T05:17:10.506Z"}