{"record":{"id":"b782c46d84ba8817","repo":"MemPalace/mempalace","slug":"unexpected-arguments-to-get-collection","errorCode":null,"errorMessage":"unexpected arguments to get_collection","messagePattern":"unexpected arguments to get_collection","errorType":"validation","errorClass":"TypeError","httpStatus":null,"severity":"error","filePath":"mempalace/backends/qdrant.py","lineNumber":1389,"sourceCode":"            palace=palace,\n            collection_name=collection_name,\n            remote_collection=remote_collection,\n        )\n        with self._lock:\n            self._collections_by_palace.setdefault(palace.id, []).append(collection)\n        return collection\n\n    @staticmethod\n    def _normalize_args(args, kwargs):\n        if \"palace\" in kwargs:\n            palace = kwargs.pop(\"palace\")\n            if not isinstance(palace, PalaceRef):\n                raise TypeError(\"palace= must be a PalaceRef instance\")\n            collection_name = kwargs.pop(\"collection_name\")\n            create = bool(kwargs.pop(\"create\", False))\n            options = kwargs.pop(\"options\", None)\n            if args or kwargs:\n                raise TypeError(\"unexpected arguments to get_collection\")\n            return palace, collection_name, create, options\n        if args:\n            palace_path = args[0]\n            rest = list(args[1:])\n            collection_name = kwargs.pop(\"collection_name\", None) or (rest.pop(0) if rest else None)\n            if collection_name is None:\n                raise TypeError(\"collection_name is required\")\n            create = kwargs.pop(\"create\", False)\n            if rest:\n                create = rest.pop(0)\n            options = kwargs.pop(\"options\", None)\n            if rest or kwargs:\n                raise TypeError(\"unexpected arguments to get_collection\")\n            return (\n                PalaceRef(id=palace_path, local_path=palace_path),\n                collection_name,\n                bool(create),\n                options,","sourceCodeStart":1371,"sourceCodeEnd":1407,"githubUrl":"https://github.com/MemPalace/mempalace/blob/06cb6987f02610784fefbad4b2bd5d026d164ba6/mempalace/backends/qdrant.py#L1371-L1407","documentation":"A TypeError from get_collection's keyword-form argument parsing: after consuming palace=, collection_name=, create=, and options= from kwargs, there were leftover positional args or keyword arguments. The keyword form accepts exactly those four names and nothing else.","triggerScenarios":"get_collection(palace=ref, \"drawers\") (mixing a positional arg with the palace= keyword), or adding unknown kwargs like palace=ref, collection_name=\"x\", timeout=30 / embedder=... .","commonSituations":"Copy-pasting call signatures from another backend with extra options; refactoring old positional calls by partially converting to keywords; IDE autocompleting a parameter that does not exist.","solutions":["Pass only palace=, collection_name=, create=, options= in the keyword form","Move the collection name into collection_name= instead of leaving it positional","Check the backend's get_collection signature for supported option names"],"exampleFix":"# before\nbackend.get_collection(palace=ref, \"drawers\", create=True)\n# after\nbackend.get_collection(palace=ref, collection_name=\"drawers\", create=True)","handlingStrategy":"validation","validationCode":"ALLOWED = {\"palace\", \"collection_name\", \"create\", \"options\"}\nassert set(kwargs) <= ALLOWED and not args, f\"bad get_collection kwargs: {set(kwargs) - ALLOWED}\"","typeGuard":null,"tryCatchPattern":"try:\n    backend.get_collection(**kwargs)\nexcept TypeError as e:\n    if \"unexpected arguments\" in str(e):\n        fix_kwargs(kwargs)  # strip unsupported keys, log them\n    raise","preventionTips":["Wrap get_collection in a typed helper with an explicit signature","Keep call sites keyword-only and limited to the four supported names"],"tags":["qdrant","api-misuse","typeerror","arguments"],"backgroundTag":null,"analyzedSha":"06cb6987f02610784fefbad4b2bd5d026d164ba6","analyzedAt":"2026-08-15T03:03:36.213Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}