{"record":{"id":"5f177d69b379dee9","repo":"bumptech/glide","slug":"failed-to-find-resource-id-for-source","errorCode":null,"errorMessage":"Failed to find resource id for: {source}","messagePattern":"Failed to find resource id for: (.+?)","errorType":"exception","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"library/src/main/java/com/bumptech/glide/load/resource/drawable/ResourceDrawableDecoder.java","lineNumber":137,"sourceCode":"      return findResourceIdFromResourceIdUri(source);\n    } else {\n      throw new IllegalArgumentException(\"Unrecognized Uri format: \" + source);\n    }\n  }\n\n  // android.resource://com.android.camera2/mipmap/logo_camera_color\n  @DrawableRes\n  private int findResourceIdFromTypeAndNameResourceUri(Context context, Uri source) {\n    List<String> segments = source.getPathSegments();\n    String packageName = source.getAuthority();\n    String typeName = segments.get(TYPE_PATH_SEGMENT_INDEX);\n    String resourceName = segments.get(NAME_PATH_SEGMENT_INDEX);\n    int result = context.getResources().getIdentifier(resourceName, typeName, packageName);\n    if (result == MISSING_RESOURCE_ID) {\n      result = Resources.getSystem().getIdentifier(resourceName, typeName, ANDROID_PACKAGE_NAME);\n    }\n    if (result == MISSING_RESOURCE_ID) {\n      throw new IllegalArgumentException(\"Failed to find resource id for: \" + source);\n    }\n    return result;\n  }\n\n  // android.resource://com.android.camera2/123456\n  @DrawableRes\n  private int findResourceIdFromResourceIdUri(Uri source) {\n    List<String> segments = source.getPathSegments();\n    try {\n      return Integer.parseInt(segments.get(RESOURCE_ID_SEGMENT_INDEX));\n    } catch (NumberFormatException e) {\n      throw new IllegalArgumentException(\"Unrecognized Uri format: \" + source, e);\n    }\n  }\n}\n","sourceCodeStart":119,"sourceCodeEnd":153,"githubUrl":"https://github.com/bumptech/glide/blob/eb14a895d8f866e6a08c3e19d50ea3bd2c12c20a/library/src/main/java/com/bumptech/glide/load/resource/drawable/ResourceDrawableDecoder.java#L119-L153","documentation":"IllegalArgumentException thrown by ResourceDrawableDecoder.findResourceIdFromTypeAndNameResourceUri() when neither the target package's Resources nor the system android package yield a resource id for the given type/name pair. The resource simply does not exist under that name.","triggerScenarios":"Loading android.resource://<package>/<type>/<name> where <name> does not exist in <type> of <package>. Typo in resource name, wrong type, or renamed/removed resource.","commonSituations":"Hardcoding drawable names that get renamed during refactors. Loading resources from third-party packages whose names change between versions. Wrong type (e.g. mipmap vs drawable).","solutions":["Verify the resource name and type exist via Resources.getIdentifier(...) == non-zero before loading.","Prefer integer resIds over names when loading your own resources.","Add an .error() fallback for missing resources.","Double-check the type segment (drawable vs mipmap vs raw)."],"exampleFix":"// before\nUri uri = Uri.parse(\"android.resource://com.example/drawable/icon_old\");\nGlide.with(ctx).load(uri).into(img);\n// after\nResources res = ctx.getResources();\nint id = res.getIdentifier(\"icon_old\", \"drawable\", \"com.example\");\nif (id != 0) {\n  Glide.with(ctx).load(id).into(img);\n} else {\n  img.setImageResource(R.drawable.placeholder);\n}","handlingStrategy":"validation","validationCode":"// Look up the resource id first; fall back if missing.\nint id = ctx.getResources().getIdentifier(name, type, packageName);\nif (id == 0) id = Resources.getSystem().getIdentifier(name, type, \"android\");\nif (id == 0) { /* show placeholder */ } else { Glide.with(ctx).load(id).into(img); }","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Resolve resource names to ids via Resources.getIdentifier before loading.","Prefer integer resIds for your own resources.","Add .error() for missing third-party resources."],"tags":["uri","drawable","resource","validation","android"],"backgroundTag":null,"analyzedSha":"eb14a895d8f866e6a08c3e19d50ea3bd2c12c20a","analyzedAt":"2026-08-14T01:43:54.821Z","schemaVersion":2},"datasetVersion":"2026-08-14T05:17:29.042Z"}