Skip to content

[GenAI Prompt API] 1.0.0-beta3 regression: default ModelConfig switched the requested AICore feature from 636 to 648, which no shipping AICore provides #1061

Description

@ijuinryukichi

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

  1. Generation.getClient() (or getClient(GenerationConfig) with any ModelConfig)
  2. checkStatus()
  3. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions