Hey team - we are not been able to get support fro...
# ask-a-descoper
a
Hey team - we are not been able to get support from anyone from descope and we're wondering if it's time to start exploring alternatives for our mobile app. @Mary Greenlee or anyone else from descope is there anyone who can help answer our questions? https://authtown.slack.com/archives/C04490U8M7A/p1773678669480279?thread_ts=1773422299.852399&cid=C04490U8M7A
✅ 1
c
Hey Alda, Looking into this
d
Hi, I'm Descope's AI assistant. I've put together an initial response below based on your question. A member of the support team will take over and follow up shortly. Direct Support Channels: Visit Support for assistance. For Mobile App Development: Descope supports multiple mobile SDKs that might help with your implementation: • Swift SDK (v0.11.0) - Native iOS SDK • Kotlin SDK (v0.18.1) - Native Android SDK • React Native SDK (v0.8.2) - Cross-platform mobile apps • Flutter SDK (v0.10.0) - Cross-platform SDK You can also reference sample applications: • Swift Sample App • Flutter Sample App (Flows) • Flutter Sample App (No Flows) These resources should help you move forward while you work on getting direct support. The sample apps are particularly useful for seeing working implementations.
c
Mary is also no longer with Descope, just FYI.
👍 1
a
thank you chris we appreciate you - we are really struggling. and that's good to know we were not aware. cc @Noel
c
NP. Also always feel free to email
<mailto:support@descope.com|support@descope.com>
or use the in app plugin under the get-help section to track any issues as a ticket.
a
noted - can we collaborate here
or do you need me to start an email chain
a
@Alda Pontes I am looking into this right now. Please allow me sometime.
❤️ 1
To summarize where we are: the E067011 error you're seeing when trying to start the flow directly with a WebAuthn action (skipping the first screen) is a timing/initialization issue — the webview context isn't fully established when the domain/origin validation fires, so WebAuthn fails before it can even attempt authentication. The button-click flow works because the user interaction gives the webview enough time to initialize properly. Since there's no built-in mechanism in Descope Flows to add a delay before an action or to programmatically skip a screen, here are two paths forward: 1. Bypass flows entirely and call the WebAuthn SDK directly (recommended) Rather than using a flow, you can call the WebAuthn client SDK method directly from your Next.js app:
Copy code
const descopeSdk = useDescope();
const resp = await descopeSdk.webauthn.signIn(loginId);
This gives you full control over when the call fires — you can gate it behind a
useEffect
that waits for the page to be fully ready, or check that
window.location.origin
is available and matches your configured domain before invoking it. This sidesteps the timing problem entirely. Just verify one thing before you all this that what does
window.location.origin
return inside your webview? In some configurations it can come back as
null
or a
file://
path, which would cause the same origin mismatch regardless of approach. Can you log that value and share what you see? That's likely the root cause and will confirm whether this works as-is or needs additional webview config.
And another approach will be Native biometric gate + pass the refresh token to the webview - If WebAuthn in the webview continues to be problematic, the hybrid approach you originally outlined is a solid fallback: 1. Handle biometric auth natively (LocalAuthentication on iOS, BiometricPrompt on Android) 2. Store the Descope refresh token in Keychain/Keystore 3. On biometric success, pass the token to the Next.js webview via
postMessage
or a URL param 4. In the Next.js app, call
descope.refresh(refreshToken)
to re-establish the session This completely avoids WebAuthn-in-webview issues. The trade-off is it requires native code changes on both platforms — but it's the most reliable path if the webview origin issue is a hard limitation.
👀 1
Please let me know if this resolve the issue
a
@Noel can you please dig in and report back? 🙏
n
window.location.origin gives the right value, so I'll try option 1. Thx a lot @Akash Jivane 🙏
✅ 1
a
@Noel Great, Just let me know if it works for you.
c
CC: @Gil Shapira @Itai Hanski as well for any follow up questions.
i
E067011 Missing domain in WebAuthn settings
- this error indicates the no domain has been configured in the Descope console. Passkeys are always connected to a specific domain and so without setting a domain in the console it will not work. I think you probably have some setup issues especially if targeting mobile apps. Generally speaking you'd need to: 1. Configure a custom domain in the Descope console, for example if your domain is app.com, something like auth.app.com 2. Set app.com as the WebAuthn top level domain. 3. To support mobile, you'd need app.com to serve some
/.well-known
files that are required to verify domain ownership as well as some set up on the mobile side 4. The flow itself should be running under some subdomain of app.com if you serve it yourselves. You will get this out of the box with custom domain (step 1) when using the descope auth hosting. 5. The
passkey
action in the flow still requires and
email
or another form of
loginId
in order to identify the user. Without a screen the user isn't providing this information. Are you passing this info into the flow? Without it, it won't work as well. I'm not sure exactly what SDKs and what setup you have - but please go through https://docs.descope.com/auth-methods/passkeys/with-sdks/mobile for the required setup before attempting to run it on mobile.
n
Hi @Itai Hanski. Thanks for this additional information.
We are developing a Next.js app, and are therefor using the Next.js / React / JS Descope SDK. You can ignore the fact that this web app also runs in an iOS app web view here as we're testing option 1 in web browsers.
I have trouble understanding the role of
window.location.origin
here. We did define a
<http://auth.amaebetter.com|auth.amaebetter.com>
custom domain in the Descope console a while ago. It always worked, including on
localhost
and
.<http://vercel.app|vercel.app>
domains. Now, when we try option 1 (using
descopeSdk.webauthn.signIn
) on localhost, we do indeed still face this E067011 error, even when waiting 3 seconds before calling it. We'd really prefer to avoid having to release this to production (our only
<http://amaebetter.com|amaebetter.com>
subdomain) in order to test if it works.
To give you more details, here is a simplified version of our
SignIn
component:
Copy code
const descope = useDescope()
const [shouldShowForm, setShouldShowForm] = useState(false)

useEffect(() => {
    // adding a delay doesn't change anything
    setTimeout(async () => {
        const lastAuth = JSON.parse(localStorage.getItem("dls_last_auth"))
        const descopeResponse = await descope.webauthn.signIn(lastAuth.loginId)
        if (descopeResponse.ok) {
            router.push("/home")
        } else {
            setShouldShowForm(true)
        }
    }, 3000)
}, [])

return shouldShowForm ? <Descope ... /> : <Spinner />
In this case,
descopeResponse
is always:
Copy code
{
  "code": 403,
  "ok": false,
  "response": {},
  "error": {
    "errorCode": "E067011",
    "errorDescription": "Missing domain in WebAuthn settings"
  }
}
The
AuthProvider
does include the
baseUrl
we defined in the Descope console, and the
SignIn
component is a children of it:
Copy code
<AuthProvider
  projectId={process.env.NEXT_PUBLIC_DESCOPE_PROJECT_ID!}
  sessionTokenViaCookie={{ sameSite: 'Lax' }}
  refreshTokenViaCookie={{ secure: process.env['NODE_ENV'] !== 'development' }}
  persistTokens={true}
  storeLastAuthenticatedUser={true}
  baseUrl="<https://auth.amaebetter.com>"
>
We used this URL and the
SignIn
component (without the
useEffect
) for a while and didn't face any issue.
i
You might have missed the first line in my response:
E067011 Missing domain in WebAuthn settings
- this error indicates the no domain has been configured in the Descope console.
Did you set up WebAuthn top level domain in the descope console? Is the flow running under that domain?
n
Oh my bad, I was confused about this domain thing. We did define the domain in Project > General, not Passkeys (WebAuthn) > Top Level Domain.
We're creating a dedicated preview subdomain in order to test this as if I understand correctly, this can't work otherwise. We'll get back to you if this still doesn't work.