cloudflared repeatedly attempts QUIC and logs CRYPTO_ERROR 0x178 with tls: no application protocol. Even with --protocol auto, no usable connection appears. The original report describes this on a particular macOS installation. It does not establish that all QUIC errors share one cause or that every version fails to fall back automatically. Q1
Distinguish reachability from negotiation
A UDP reachability check and a completed QUIC handshake are different observations. Cloudflare documents auto, quic and http2 as transport choices between the connector and Cloudflare. Q2 This setting is separate from whether the connector uses HTTP/2 to contact your origin service.
Run an interpretable comparison
- Capture the first failure. Record cloudflared version, operating system, startup parameters and time. Look for an actual registered connection, rather than treating repeated retry lines as progress. Remove tunnel tokens before sharing logs.
- Identify network changes. Check recent changes to a VPN, corporate firewall, security product or network connection. A comparison over another approved network may reveal whether the failure is tied to a particular path.
- List required tunnel functions. Establish which services the tunnel carries. Private UDP services have different requirements from a published HTTP application. Cloudflare documents QUIC as necessary for UDP transport. Q3
- Plan a limited HTTP/2 test. Where the required functions allow it, use a separate or controlled test instance with the documented transport setting. Keep the origin, hostname and access controls unchanged. Observe both registration and a harmless application request.
- Interpret the result cautiously. HTTP/2 success under otherwise identical conditions narrows the failure to the QUIC path. It does not identify which network device or implementation rejected the handshake. If both transports fail, investigate shared requirements such as DNS and outbound connectivity.
Turn the test into an operational decision
A working alternative transport may provide a limited operating option if it supports all required functions. Review effects on other routes before making it permanent. Treat a version change as another controlled comparison; a report from somebody else's installation is not sufficient reason to run an arbitrary older version indefinitely.
For handoff, prepare sanitised startup logs, results for both transports, any network comparison and the service types that must remain supported. After a change, verify the tunnel connection and the actual application. A running process alone does not establish that users can reach their service.
Frequently asked questions
Why is a passing UDP test insufficient?
It does not establish that the subsequent protocol negotiation completes successfully.
Can I always force http2?
Only after reviewing the tunnel's required functions. Needed UDP traffic can make that an unsuitable replacement.
Prepare a findings note
Summarise your observations for your enquiry. The note is created in your browser and is not saved or sent here. You can then copy it into the contact form.
Unknown is fine. Do not enter passwords, customer data or complete confidential logs.
Support with this issue
We can investigate tunnel transport, the network path and a bounded protocol comparison.
