microg/GmsCore · error · UnsupportedOperationException
Not yet implemented
Error message
Not yet implemented
What it means
VerificationHandle.isValid() is a stub in this library build that unconditionally throws UnsupportedOperationException with 'Not yet implemented'. The method is documented to report whether the handle is usable for RecaptchaClient.verifyAccount calls, but the implementation is absent. This is a placeholder from an API surface ported without a backing implementation.
Source
Thrown at play-services-recaptcha/src/main/java/com/google/android/gms/recaptcha/VerificationHandle.java:56
/**
* Returns the validity duration of the object since its creation in minutes.
*/
public abstract long getTimeoutMinutes();
/**
* Returns an encrypted version of the internal verification token that will be used in
* {@link RecaptchaClient#verifyAccount(String, VerificationHandle)} call.
*/
public abstract String getVerificationToken();
/**
* Returns a boolean indicating if the {@link VerificationHandle} is valid for
* {@link RecaptchaClient#verifyAccount(String, VerificationHandle)} API calls. An invalid handle will cause
* {@link RecaptchaClient#verifyAccount(String, VerificationHandle)} calls to fail immediately.
*/
public boolean isValid() {
throw new UnsupportedOperationException("Not yet implemented");
}
}
View on GitHub (pinned to 157c9d86ac)
Solutions
- Do not call isValid(); instead attempt verifyAccount and handle its failure to determine handle validity
- Check for a newer library version that implements VerificationHandle.isValid()
- Wrap the call in try-catch for UnsupportedOperationException and treat the handle as valid (or verify via server-side flow)
- Implement/patch the method locally if you vendor this code
Example fix
// before
if (!handle.isValid()) { return; }
client.verifyAccount(nonce, handle);
// after
try {
client.verifyAccount(nonce, handle);
} catch (ApiException e) {
// handle invalid/expired handle
} Defensive patterns
Strategy: try-catch
Try / catch
// VerificationHandle.isValid() is an unimplemented stub in this library
try {
boolean valid = handle.isValid();
if (!valid) throw new IllegalStateException("handle invalid");
} catch (UnsupportedOperationException e) {
// stub not implemented; proceed or validate via verifyAccount failure
} Prevention
- Avoid isValid() on VerificationHandle from this library; rely on verifyAccount error handling
- Check library version/changelog for the implemented method before using the API
When it happens
Trigger: Calling isValid() on any VerificationHandle obtained from a recaptcha API before using it with RecaptchaClient.verifyAccount(String, VerificationHandle).
Common situations: Developers following Google Play Services Recaptcha docs who check the handle's validity before account verification hit the stub immediately, because this library (e.g. microG play-services-recaptcha) never implemented the check.
Understand the failure class
Background: UnsupportedOperationException and "is not supported" errors: when a library deliberately refuses a call — this error's family across 30 libraries.
Related errors
- Cannot remove elements from a DataBufferIterator
- Unsupported method call %s(%s).
- UnsupportedOperationException
- onCreateView not allowed on MapViewDelegate
- onDestroyView not allowed on MapViewDelegate
AI-assisted analysis of microg/GmsCore@157c9d86ac (2026-09-06).
Data as JSON: /api/errors/5b2bd2ebddf97ba9.
Report an issue: GitHub.