Workers app don't resolve to IPV4 only request

What is the name of the domain?

teambrazil.app

What is the error number?

IPV4 request don’t resolve

What is the error message?

IPV4 request don’t resolve

What is the issue you’re encountering

IPV4 request don’t resolve

What steps have you taken to resolve the issue?

Hi, I have a new deployed app in workers but it does not resolve to IPV4. Only IPV6
curl -4 https://www.teambrazil.app/auth/login (this does NOT work)
curl -6 https://www.teambrazil.app/auth/login (this works)

The problem is that some customers don’t have IPV6 configured on the wifi router and this blocks the access to the app.

What feature, service or problem is this related to?

DNS records

What are the steps to reproduce the issue?

curl -4 https://www.teambrazil.app/auth/login (this does NOT work)

It’s resolving ok for me and in all these places…
https://cf.sjr.dev/tools/check?f1620de4a61b4771a4a8510abbbe6588#resolvers

Try another DNS resolver and see if that works for you.

DNS seems to be OK, but I cannot access the app in IPV4 ONLY
curl -4 https://www.teambrazil.app/auth/login

That seems to be the problem.

I have another app in workers that is exactly the same but it works
curl -4 http://api.bepersonal.com.br

I think there is some networking problem with www.teambrazil.app because I can ping api.bepersonal.com.br but I cannot ping www.teambrazil.app

It’s still working ok for me. Try another DNS resolver.

https://cf.sjr.dev/tools/check?fe1c0d6290b54757b5ad6f0a30616c45#connection-server-https

curl -4 https://www.teambrazil.app/auth/login
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/assets/root-DUT3VaLJ.css"/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&amp;display=swap"/></head><body><div class="relative h-screen flex-col items-center justify-center md:grid lg:max-w-none lg:grid-cols-2 lg:px-0"><div class="relative hidden h-full flex-col bg-muted p-10 text-white lg:flex dark:border-r"><div class="absolute inset-0 bg-[#4c7f7a]"></div><div class="relative flex items-center justify-center h-full"><img src="/logo.png" alt="Logo" class="h-80 w-80"/></div><div class="relative z-20 mt-auto"><blockquote class="space-y-2"><footer class="text-xs text-gray-400"><a href="https://viewit.com.br">Desenvolvido por Viewit</a></footer></blockquote></div></div><div class="flex h-full items-center p-4 lg:p-8"><div class="mx-auto flex w-full flex-col justify-center space-y-6 sm:w-[350px]"><div class="flex flex-col space-y-2 text-center items-center"><img src="/logo.png" alt="Logo" class="w-20 h-20 md:hidden"/><h1 class="text-2xl font-semibold tracking-tight text-gray-500">App TeamBrazil</h1></div><form class="w-full space-y-2"><div class="space-y-2"><input class="flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50" placeholder="E-mail" name="email" autoCapitalize="off" inputMode="email" id=":R1b35:-form-item" aria-describedby=":R1b35:-form-item-description" aria-invalid="false" value=""/></div><div class="space-y-2" style="margin-top:10px"><input type="password" class="flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50" placeholder="Senha" name="password" id=":R2b35:-form-item" aria-describedby=":R2b35:-form-item-description" aria-invalid="false" value=""/></div><button class="inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 h-10 px-4 py-2 ml-auto w-full bg-[#4c7f7a] text-white hover:bg-[#d49105]" type="submit">Entrar</button></form><a class="text-sm text-muted-foreground" data-discover="true" href="/auth/forgot-pass">Esqueceu sua senha?</a><p class="px-8 text-center text-xs text-muted-foreground">Ao utilizar este site, você concorda com os nossos<!-- --> <br/><a rel="noreferrer" class="underline underline-offset-4 hover:text-primary" href="https://reservas.teambrazil.com.br/termos-de-uso" target="_blank">Termos de Uso</a> <!-- --> <br/><a rel="noreferrer" class="underline underline-offset-4 hover:text-primary" href="https://reservas.teambrazil.com.br/politica-de-privacidade" target="_blank">Política de Privacidade</a>.</p><div class="fixed bottom-10 left-0 right-0 flex justify-center md:hidden"><div class="relative z-20 mt-auto"><footer class="text-xs text-gray-400"><a href="https://viewit.com.br">Desenvolvido por Viewit</a></footer></div></div></div></div></div><script>((c,d)=>{if(!window.history.state||!window.history.state.key){let p=Math.random().toString(32).slice(2);window.history.replaceState({key:p},"")}try{let A=JSON.parse(sessionStorage.getItem(c)||"{}")[d||window.history.state.key];typeof A=="number"&&window.scrollTo(0,A)}catch(p){console.error(p),sessionStorage.removeItem(c)}})("positions", null)</script><link rel="modulepreload" href="/assets/entry.client-BGRTvi6g.js"/><link rel="modulepreload" href="/assets/jsx-runtime-BfjT4Y3f.js"/><link rel="modulepreload" href="/assets/index-BtdSAscl.js"/><link rel="modulepreload" href="/assets/index-BIdN6oHc.js"/><link rel="modulepreload" href="/assets/components-BmDAJrTP.js"/><link rel="modulepreload" href="/assets/use-toast-HsG3-LIa.js"/><link rel="modulepreload" href="/assets/index-ClOGvX6H.js"/><link rel="modulepreload" href="/assets/utils-CjZa_1aV.js"/><link rel="modulepreload" href="/assets/index-CN0r4up1.js"/><link rel="modulepreload" href="/assets/index-NyBD_fbx.js"/><link rel="modulepreload" href="/assets/clsx-B-dksMZM.js"/><link rel="modulepreload" href="/assets/root-CRCmVt1g.js"/><link rel="modulepreload" href="/assets/_layout-AWt9lAg0.js"/><link rel="modulepreload" href="/assets/loading-button-BNsZuKPz.js"/><link rel="modulepreload" href="/assets/form-CdhEJ2Un.js"/><link rel="modulepreload" href="/assets/input-xTvJ0JGo.js"/><link rel="modulepreload" href="/assets/index-Ho1Bv1mf.js"/><link rel="modulepreload" href="/assets/general-error-boundary-DMzoLOcs.js"/><link rel="modulepreload" href="/assets/loader-circle-CWxYO0ot.js"/><link rel="modulepreload" href="/assets/createLucideIcon-CJZYMz5D.js"/><link rel="modulepreload" href="/assets/_login-VPhfc0Fv.js"/><script>window.__remixContext = {"basename":"/","future":{"v3_fetcherPersist":true,"v3_relativeSplatPath":true,"v3_throwAbortReason":true,"v3_routeConfig":false,"v3_singleFetch":true,"v3_lazyRouteDiscovery":true,"unstable_optimizeDeps":false},"isSpaMode":false};window.__remixContext.stream = new ReadableStream({start(controller){window.__remixContext.streamController = controller;}}).pipeThrough(new TextEncoderStream());</script><script type="module" async="">;
import * as route0 from "/assets/root-CRCmVt1g.js";
import * as route1 from "/assets/_layout-AWt9lAg0.js";
import * as route2 from "/assets/_login-VPhfc0Fv.js";
window.__remixManifest = {
  "entry": {
    "module": "/assets/entry.client-BGRTvi6g.js",
    "imports": [
      "/assets/jsx-runtime-BfjT4Y3f.js",
      "/assets/index-BtdSAscl.js",
      "/assets/index-BIdN6oHc.js",
      "/assets/components-BmDAJrTP.js"
    ],
    "css": []
  },
  "routes": {
    "root": {
      "id": "root",
      "path": "",
      "hasAction": true,
      "hasLoader": false,
      "hasClientAction": false,
      "hasClientLoader": false,
      "hasErrorBoundary": false,
      "module": "/assets/root-CRCmVt1g.js",
      "imports": [
        "/assets/jsx-runtime-BfjT4Y3f.js",
        "/assets/index-BtdSAscl.js",
        "/assets/index-BIdN6oHc.js",
        "/assets/components-BmDAJrTP.js",
        "/assets/use-toast-HsG3-LIa.js",
        "/assets/index-ClOGvX6H.js",
        "/assets/utils-CjZa_1aV.js",
        "/assets/index-CN0r4up1.js",
        "/assets/index-NyBD_fbx.js",
        "/assets/clsx-B-dksMZM.js"
      ],
      "css": [
        "/assets/root-DUT3VaLJ.css"
      ]
    },
    "routes/auth/_layout": {
      "id": "routes/auth/_layout",
      "parentId": "root",
      "path": "auth",
      "hasAction": false,
      "hasLoader": false,
      "hasClientAction": false,
      "hasClientLoader": false,
      "hasErrorBoundary": false,
      "module": "/assets/_layout-AWt9lAg0.js",
      "imports": [
        "/assets/jsx-runtime-BfjT4Y3f.js",
        "/assets/components-BmDAJrTP.js",
        "/assets/index-BIdN6oHc.js",
        "/assets/index-BtdSAscl.js"
      ],
      "css": []
    },
    "routes/auth/login/_login": {
      "id": "routes/auth/login/_login",
      "parentId": "routes/auth/_layout",
      "path": "login",
      "hasAction": true,
      "hasLoader": true,
      "hasClientAction": false,
      "hasClientLoader": false,
      "hasErrorBoundary": true,
      "module": "/assets/_login-VPhfc0Fv.js",
      "imports": [
        "/assets/jsx-runtime-BfjT4Y3f.js",
        "/assets/loading-button-BNsZuKPz.js",
        "/assets/form-CdhEJ2Un.js",
        "/assets/input-xTvJ0JGo.js",
        "/assets/index-Ho1Bv1mf.js",
        "/assets/general-error-boundary-DMzoLOcs.js",
        "/assets/components-BmDAJrTP.js",
        "/assets/utils-CjZa_1aV.js",
        "/assets/clsx-B-dksMZM.js",
        "/assets/loader-circle-CWxYO0ot.js",
        "/assets/createLucideIcon-CJZYMz5D.js",
        "/assets/index-NyBD_fbx.js",
        "/assets/index-BtdSAscl.js",
        "/assets/index-BIdN6oHc.js"
      ],
      "css": []
    },
    "routes/_index": {
      "id": "routes/_index",
      "parentId": "root",
      "index": true,
      "hasAction": false,
      "hasLoader": true,
      "hasClientAction": false,
      "hasClientLoader": false,
      "hasErrorBoundary": false,
      "module": "/assets/_index-B1pNVDlg.js",
      "imports": [
        "/assets/jsx-runtime-BfjT4Y3f.js"
      ],
      "css": []
    }
  },
  "url": "/assets/manifest-edd983d4.js",
  "version": "edd983d4"
};
window.__remixRouteModules = {"root":route0,"routes/auth/_layout":route1,"routes/auth/login/_login":route2};

import("/assets/entry.client-BGRTvi6g.js");</script><div role="region" aria-label="Notifications (F8)" tabindex="-1" style="pointer-events:none"><ol tabindex="-1" class="fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]"></ol></div></body></html><!--$--><script>window.__remixContext.streamController.enqueue("[{\"_1\":2,\"_6\":-5,\"_7\":-5},\"loaderData\",{\"_3\":-5,\"_4\":-5,\"_5\":-5},\"routes/auth/login/_login\",\"root\",\"routes/auth/_layout\",\"actionData\",\"errors\"]\n");</script><!--$--><script>window.__remixContext.streamController.close();</script><!--/$--><!--/$-->%

You are correct, using another resolver solved

Thanks

1 Like