{"record":{"id":"5b2bd2ebddf97ba9","repo":"microg/GmsCore","slug":"not-yet-implemented-5b2bd2","errorCode":null,"errorMessage":"Not yet implemented","messagePattern":"Not yet implemented","errorType":"exception","errorClass":"UnsupportedOperationException","httpStatus":null,"severity":"error","filePath":"play-services-recaptcha/src/main/java/com/google/android/gms/recaptcha/VerificationHandle.java","lineNumber":56,"sourceCode":"\n    /**\n     * Returns the validity duration of the object since its creation in minutes.\n     */\n    public abstract long getTimeoutMinutes();\n\n    /**\n     * Returns an encrypted version of the internal verification token that will be used in\n     * {@link RecaptchaClient#verifyAccount(String, VerificationHandle)} call.\n     */\n    public abstract String getVerificationToken();\n\n    /**\n     * Returns a boolean indicating if the {@link VerificationHandle} is valid for\n     * {@link RecaptchaClient#verifyAccount(String, VerificationHandle)} API calls. An invalid handle will cause\n     * {@link RecaptchaClient#verifyAccount(String, VerificationHandle)} calls to fail immediately.\n     */\n    public boolean isValid() {\n        throw new UnsupportedOperationException(\"Not yet implemented\");\n    }\n}\n","sourceCodeStart":38,"sourceCodeEnd":59,"githubUrl":"https://github.com/microg/GmsCore/blob/157c9d86ac46c195a86c2f15ab55c84036223f95/play-services-recaptcha/src/main/java/com/google/android/gms/recaptcha/VerificationHandle.java#L38-L59","documentation":"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.","triggerScenarios":"Calling isValid() on any VerificationHandle obtained from a recaptcha API before using it with RecaptchaClient.verifyAccount(String, VerificationHandle).","commonSituations":"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.","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"],"exampleFix":"// before\nif (!handle.isValid()) { return; }\nclient.verifyAccount(nonce, handle);\n// after\ntry {\n    client.verifyAccount(nonce, handle);\n} catch (ApiException e) {\n    // handle invalid/expired handle\n}","handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"// VerificationHandle.isValid() is an unimplemented stub in this library\ntry {\n    boolean valid = handle.isValid();\n    if (!valid) throw new IllegalStateException(\"handle invalid\");\n} catch (UnsupportedOperationException e) {\n    // stub not implemented; proceed or validate via verifyAccount failure\n}","preventionTips":["Avoid isValid() on VerificationHandle from this library; rely on verifyAccount error handling","Check library version/changelog for the implemented method before using the API"],"tags":["unsupported-operation","recaptcha","stub-implementation"],"backgroundTag":"unsupported-operation","analyzedSha":"157c9d86ac46c195a86c2f15ab55c84036223f95","analyzedAt":"2026-09-06T17:27:33.892Z","contentChangedAt":"2026-09-06T17:27:33.892Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}