Summary
com.google.mlkit:genai-prompt:1.0.0-beta3 cannot reach the Prompt API at all on a Pixel 10 where beta1 and beta2 work fine. checkStatus() throws GenAiException(errorCode=606) FEATURE_NOT_FOUND for every ModelConfig.
The cause is a change in the requested AICore feature ID: the default ModelConfig requests feature 636 in beta2 and feature 648 in beta3. No shipping AICore provides 648.
I verified this is not an AICore configuration-download issue: beta2 succeeds on the same device, in the same session, minutes apart, with the same source code. Only the AAR version differs.
Environment
|
|
| Device |
Google Pixel 10 (frankel), Tensor G5 |
| OS |
Android 16, build CP1A.260505.005, security patch 2026-05-05 |
| Bootloader |
locked (ro.boot.verifiedbootstate=green, ro.boot.flash.locked=1) |
| AICore |
0.release.prod_aicore_20260528.01_RC08.934495584 (versionCode 456989), release channel, installed from Play, no update offered |
| Play services |
26.23.34 |
| Google Play system update |
2026-07-01S+ |
| Account |
not a member of aicore-experimental or any AICore testing group |
Pixel 10 is listed as a supported nano-v3 device for the Prompt API on the official device support page.
Steps to reproduce
Generation.getClient() (or getClient(GenerationConfig) with any ModelConfig)
checkStatus()
- It throws instead of returning a
FeatureStatus.
GenAiException(errorCode=606): [ErrorCode 606] AICore failed with error type
3-PREPARATION_ERROR and error code 606-FEATURE_NOT_FOUND: Feature 648 is not available.
Evidence 1 — version A/B/A on one device, one session
Same source code, same device, same AICore. Only the genai-prompt version changed.
| Time |
genai-prompt |
checkStatus() (default ModelConfig) |
| 10:38 |
beta3 |
throws 606, Feature 648 not available |
| 10:54 |
beta2 |
returns 3 (AVAILABLE) — inference then runs normally |
| 10:56 |
beta3 |
throws 606, Feature 648 not available |
| 11:28 |
beta1 |
returns 3 (AVAILABLE) — inference then runs normally |
This rules out "AICore hasn't finished downloading the latest configurations" (the documented cause of 606): if the config were missing, beta1/beta2 would fail too. The device had also been rebooted and left connected to Wi-Fi, per the troubleshooting guidance.
Additional control: ML Kit GenAI Summarization works on the same device in the same session (nano-v3, ~9.9 s for a Japanese article). AICore itself is healthy.
Evidence 2 — the requested feature ID changed from 636 to 648
On the Pixel 10, beta2 succeeds, so its requested feature ID is not visible (the ID only appears in the error message).
To observe it, I ran the same beta2 build on a Pixel 9a, where the Prompt API is not provisioned at all. There, beta2 fails and prints the ID it asked for:
ModelConfig |
beta2 requests |
beta3 requests |
default |
636 |
648 |
STABLE × FULL |
636 |
648 |
STABLE × FAST |
645 |
645 |
PREVIEW × FAST |
646 |
646 |
PREVIEW × FULL |
647 |
647 |
Feature IDs are requested by the library, not reported by the device, so this is a property of the AAR version.
beta3 changed default / STABLE×FULL from 636 to 648. 636 exists on the shipping AICore (prod_aicore_20260528); 648 does not. Every publicly reported feature ID for beta1/beta2 that I could find is also 636, which is consistent.
In beta3, no ModelConfig combination is reachable — there is no workaround at the API level. (646/647 being absent is expected: PREVIEW requires the AICore Developer Preview program. The problem is the STABLE path.)
Evidence 3 — the regression is in genai-prompt, not genai-common
beta3 also bumps its genai-common dependency from beta3 to beta4. To separate the two, I forced genai-common:1.0.0-beta4 while keeping genai-prompt:1.0.0-beta2:
| Combination |
Result |
| genai-prompt beta2 + genai-common beta3 (default) |
works |
| genai-prompt beta2 + genai-common beta4 (forced) |
works |
| genai-prompt beta3 + genai-common beta4 (default) |
fails |
So the regression is in genai-prompt beta3 itself.
Expected
genai-prompt:1.0.0-beta3 should request an AICore feature that shipping AICore builds actually provide — or the release notes should state the minimum AICore version it requires. Currently the release notes list beta3 with a date and no description, and the get-started page still documents beta2.
Summary
com.google.mlkit:genai-prompt:1.0.0-beta3cannot reach the Prompt API at all on a Pixel 10 where beta1 and beta2 work fine.checkStatus()throwsGenAiException(errorCode=606) FEATURE_NOT_FOUNDfor everyModelConfig.The cause is a change in the requested AICore feature ID: the default
ModelConfigrequests feature 636 in beta2 and feature 648 in beta3. No shipping AICore provides 648.I verified this is not an AICore configuration-download issue: beta2 succeeds on the same device, in the same session, minutes apart, with the same source code. Only the AAR version differs.
Environment
frankel), Tensor G5CP1A.260505.005, security patch 2026-05-05ro.boot.verifiedbootstate=green,ro.boot.flash.locked=1)0.release.prod_aicore_20260528.01_RC08.934495584(versionCode 456989), release channel, installed from Play, no update offeredaicore-experimentalor any AICore testing groupPixel 10 is listed as a supported nano-v3 device for the Prompt API on the official device support page.
Steps to reproduce
Generation.getClient()(orgetClient(GenerationConfig)with anyModelConfig)checkStatus()FeatureStatus.Evidence 1 — version A/B/A on one device, one session
Same source code, same device, same AICore. Only the
genai-promptversion changed.checkStatus()(defaultModelConfig)This rules out "AICore hasn't finished downloading the latest configurations" (the documented cause of 606): if the config were missing, beta1/beta2 would fail too. The device had also been rebooted and left connected to Wi-Fi, per the troubleshooting guidance.
Additional control: ML Kit GenAI Summarization works on the same device in the same session (
nano-v3, ~9.9 s for a Japanese article). AICore itself is healthy.Evidence 2 — the requested feature ID changed from 636 to 648
On the Pixel 10, beta2 succeeds, so its requested feature ID is not visible (the ID only appears in the error message).
To observe it, I ran the same beta2 build on a Pixel 9a, where the Prompt API is not provisioned at all. There, beta2 fails and prints the ID it asked for:
ModelConfigdefaultSTABLE×FULLSTABLE×FASTPREVIEW×FASTPREVIEW×FULLFeature IDs are requested by the library, not reported by the device, so this is a property of the AAR version.
beta3 changed
default/STABLE×FULLfrom 636 to 648. 636 exists on the shipping AICore (prod_aicore_20260528); 648 does not. Every publicly reported feature ID for beta1/beta2 that I could find is also 636, which is consistent.In beta3, no
ModelConfigcombination is reachable — there is no workaround at the API level. (646/647 being absent is expected: PREVIEW requires the AICore Developer Preview program. The problem is the STABLE path.)Evidence 3 — the regression is in
genai-prompt, notgenai-commonbeta3 also bumps its
genai-commondependency from beta3 to beta4. To separate the two, I forcedgenai-common:1.0.0-beta4while keepinggenai-prompt:1.0.0-beta2:So the regression is in genai-prompt beta3 itself.
Expected
genai-prompt:1.0.0-beta3should request an AICore feature that shipping AICore builds actually provide — or the release notes should state the minimum AICore version it requires. Currently the release notes list beta3 with a date and no description, and the get-started page still documents beta2.