[BUG] `protocol mismatch` error when trying to install Claude CLI

Status Open
Reported on v2.1.237
Maintainer reply None cached
Activity 2 comments · opened Aug 21, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

  • OS: Ubuntu 24.04.4
  • Install command used: bash -c "$(curl -fsSL https://claude.ai/install.sh)" -- 2.1.237
  • Steps already tried: --force, --verbose, manual download of bootstrap.sh/binary, running claude install 2.1.237 directly with same result
  • Diagnostics ruled out: confirmed glibc via ldd --version, no musl libraries present, no conflicting claude installs, ~/.local/bin writable, no missing shared libraries

Version mismatch note: installer downloads latest binary (2.1.238) to install an older version (2.1.237)

The above was generated by Fin, which was otherwise completely clueless as to what the problem might be. It suggested I open an issue here. My own narrative:
I am trying to install the Claude CLI on Ubuntu 24.04.4 using bash -c "$(curl -fsSL [https://claude.ai/install.sh)"](https://claude.ai/install.sh)%22) -- 2.1.237. After a lengthy wait to download the installer, it immediately fails, saying ✘ Installation failed, protocol mismatch, Try running with --force to override checks, and literally nothing else. I tried adding --force to the install.sh command and it did nothing. I eventually downloaded bootstrap.sh, saw it was downloading https://downloads.claude.ai/claude-code-releases/2.1.238/linux-x64/claude, and the error happened when it ran claude-2.1.238-linux-x64 install 2.1.237. I downloaded that file myself and tried running claude install 2.1.237 and got the same error. I tried adding --force and --verbose, but that did not change the output any. Running the downloaded claude install without any arguments does appear to open the Claude CLI without issue, at least it gets as far as asking me if I trust the current directory.

What Should Happen?

Claude should install successfully or at a minimum give a more helpful error message.

Error Messages/Logs

Setting up Claude Code...

✘ Installation failed

protocol mismatch


Try running with --force to override checks

Steps to Reproduce

Run bash -c "$(curl -fsSL https://claude.ai/install.sh)" -- 2.1.237.

Claude Model

_No response_

Is this a regression?

Yes, this worked in a previous version

Last Working Version

2.1.63

Claude Code Version

2.1.238

Platform

Anthropic API

Operating System

Ubuntu/Debian Linux

Terminal/Shell

Xterm

Additional Information

```./claude doctor
Claude Code doctor

Running: native (2.1.238)
Commit: 46283063a4c2
Platform: linux-x64
Path: /home/jcroteau/claude
Config install method: native
Search: OK (bundled)
Auto-updates: enabled
Auto-update channel: latest
Last update attempt: none recorded

Remote Control
Remote Control requires a claude.ai subscription. Run claude auth login to sign in with your claude.ai account.

  • Not signed in to claude.ai
  • claude.ai subscription auth not active
  • Sign-in is missing the user:profile scope

1 warning found

  • claude command at /home/jcroteau/.local/bin/claude missing or broken

Fix: Run claude install to repair the installation.

For a full setup checkup that can also fix issues, run /doctor in a Claude Code session.

ldd --version
ldd (Ubuntu GLIBC 2.39-0ubuntu8.8) 2.39
Copyright (C) 2024 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.

ldd claude
linux-vdso.so.1 (0x00007ffd6417f000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007d4e4cce8000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007d4e4ca00000)
/lib64/ld-linux-x86-64.so.2 (0x00007d4e4cd09000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007d4e4cce3000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007d4e4ccde000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007d4e4c917000)

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗