{"id":"55b061c8364ac87b","repo":"boto/boto3","slug":"unsupported-source-type-source-55b061","errorCode":null,"errorMessage":"Unsupported source type: {source}","messagePattern":"Unsupported source type: (.+?)","errorType":"exception","errorClass":"NotImplementedError","httpStatus":null,"severity":"error","filePath":"boto3/resources/response.py","lineNumber":71,"sourceCode":"    for identifier in identifiers:\n        source = identifier.source\n        target = identifier.target\n\n        if source == 'response':\n            value = jmespath.search(identifier.path, raw_response)\n        elif source == 'requestParameter':\n            value = jmespath.search(identifier.path, params)\n        elif source == 'identifier':\n            value = getattr(parent, xform_name(identifier.name))\n        elif source == 'data':\n            # If this is a data member then it may incur a load\n            # action before returning the value.\n            value = get_data_member(parent, identifier.path)\n        elif source == 'input':\n            # This value is set by the user, so ignore it here\n            continue\n        else:\n            raise NotImplementedError(f'Unsupported source type: {source}')\n\n        results.append((xform_name(target), value))\n\n    return results\n\n\ndef build_empty_response(search_path, operation_name, service_model):\n    \"\"\"\n    Creates an appropriate empty response for the type that is expected,\n    based on the service model's shape type. For example, a value that\n    is normally a list would then return an empty list. A structure would\n    return an empty dict, and a number would return None.\n\n    :type search_path: string\n    :param search_path: JMESPath expression to search in the response\n    :type operation_name: string\n    :param operation_name: Name of the underlying service operation.\n    :type service_model: :ref:`botocore.model.ServiceModel`","sourceCodeStart":53,"sourceCodeEnd":89,"githubUrl":"https://github.com/boto/boto3/blob/c7b4afac237b976d48395d7523eaf7cec3a450b3/boto3/resources/response.py#L53-L89","documentation":"Raised by build_identifiers() in boto3/resources/response.py when an identifier's source is not one of 'response', 'requestParameter', 'identifier', 'data', or 'input'. Like error 18, this is driven by the service resource model's identifier definitions, not by user-supplied arguments. Encountering it indicates the model contains an unrecognized identifier source, typically from a boto3/botocore version mismatch or a custom/patched model.","triggerScenarios":"Processing a resource action response where the identifier source in the model is not recognized; using a botocore data file newer than the installed boto3 that introduced a new identifier source type.","commonSituations":"Version skew between boto3 and botocore; custom resource model overrides; running against a beta/newer service model.","solutions":["Upgrade boto3 and botocore together to current, compatible versions.","If using custom models, restrict identifier sources to the recognized set.","Align botocore to the version your boto3 release expects."],"exampleFix":"# environment fix, not user code\n# before\npip install boto3==1.26.0  # pulls incompatible botocore\n\n# after\npip install --upgrade boto3 botocore","handlingStrategy":"validation","validationCode":"# Not preventable at call-site; validate environment instead.\nimport boto3, botocore\nprint(f'boto3={boto3.__version__} botocore={botocore.__version__}')\n# Ensure they are a compatible pair (boto3 pins botocore>=X).","typeGuard":null,"tryCatchPattern":"try:\n    result = resource.action()\nexcept NotImplementedError as e:\n    if 'Unsupported source type' in str(e):\n        raise RuntimeError('Likely boto3/botocore version mismatch; upgrade both') from e\n    raise","preventionTips":["Upgrade boto3 and botocore in lockstep.","Pin compatible versions in your dependency manifest.","Do not mix a newer botocore data bundle with an older boto3."],"tags":["resources","internal","model","version-mismatch","not-implemented","response"],"analyzedSha":"c7b4afac237b976d48395d7523eaf7cec3a450b3","analyzedAt":"2026-08-04T20:35:51.598Z","schemaVersion":2}