{"record":{"id":"2b83449f825769bf","repo":"crewAIInc/crewAI","slug":"project-name-is-required-to-find-a-deployment","errorCode":null,"errorMessage":"project_name is required to find a deployment","messagePattern":"project_name is required to find a deployment","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"lib/cli/src/crewai_cli/deploy/main.py","lineNumber":337,"sourceCode":"            _display_git_remote_help()\n            deployment_uuid = self._deployment_uuid_by_name()\n            env_vars = fetch_and_json_env_file()\n            response = self._update_crew_from_zip(\n                deployment_uuid,\n                repository,\n                env_vars,\n            )\n        else:\n            self._standard_no_param_error_message()\n            return\n\n        self._validate_response(response)\n        self._display_deployment_info(response.json())\n\n    def _deployment_uuid_by_name(self) -> str:\n        \"\"\"Resolve the current project's deployment UUID by project name.\"\"\"\n        if not self.project_name:\n            raise ValueError(\"project_name is required to find a deployment\")\n\n        response = self.plus_api_client.crew_status_by_name(self.project_name)\n        self._validate_response(response)\n        json_response = response.json()\n        uuid = json_response.get(\"uuid\")\n        if not uuid:\n            raise ValueError(\"Deployment status response did not include a uuid\")\n        return str(uuid)\n\n    def create_crew(\n        self,\n        confirm: bool = False,\n        skip_validate: bool = False,\n        source: DeploySource = \"cli\",\n    ) -> None:\n        \"\"\"\n        Create a new crew deployment.\n","sourceCodeStart":319,"sourceCodeEnd":355,"githubUrl":"https://github.com/crewAIInc/crewAI/blob/754d7323beb2fd042e33444a115ea2d5a47193f0/lib/cli/src/crewai_cli/deploy/main.py#L319-L355","documentation":"Raised by _check_index_exists when scoped_index is false, a cluster handle IS present, but index_name is not in cluster.search_indexes().get_all_indexes(). Identical message to the scoped branch (line 116) but fired against cluster-level Search indexes; the cluster guard (line 122) has already passed, so the cluster connection itself is fine.","triggerScenarios":"Constructing the tool with scoped_index=False and an index_name that exists nowhere at cluster level — never created, typo'd, or created only as a scoped index.","commonSituations":"Couchbase 7.6+ scoped Search indexes exist but the tool is looking at cluster-level indexes (or vice versa), index deleted, or wrong cluster environment (dev index name on prod cluster).","solutions":["List cluster indexes and use an exact name: [i.name for i in cluster.search_indexes().get_all_indexes()].","If the index actually lives in a scope, switch to scoped_index=True with the right scope_name.","Create the missing index via the Couchbase UI (Search -> Add index) or the REST/management API."],"exampleFix":"# before\ntool = CouchbaseFTSVectorSearchTool(cluster=cluster, bucket_name='travel', scope_name='inventory', collection_name='hotel', index_name='travel-hotels', scoped_index=False)  # ValueError\n# after\n# index exists only scoped -> use scoped mode\ntool = CouchbaseFTSVectorSearchTool(bucket_name='travel', scope_name='inventory', collection_name='hotel', index_name='travel-hotels', scoped_index=True)","handlingStrategy":"validation","validationCode":"names = {i.name for i in cluster.search_indexes().get_all_indexes()}\nif index_name not in names:\n    raise ValueError(f\"index '{index_name}' not found at cluster level; available: {sorted(names)}\")","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Confirm the index's actual location (scope vs cluster) before choosing scoped_index.","Automate index provisioning with the Search REST API so environments stay identical.","Check index names right after creation — name typos are the top cause of this error."],"tags":["couchbase","search","validation","index"],"backgroundTag":null,"analyzedSha":"754d7323beb2fd042e33444a115ea2d5a47193f0","analyzedAt":"2026-08-15T04:06:56.746Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}