Skip to content

gRPC update to 1.74 breaks local-ai on metal #5966

@johndev168

Description

@johndev168

LocalAI version:
v3.3.1 built with latest commit #5965

Environment, CPU architecture, OS, and Version:
Mac T8132 MacOS 15.5 24F74 no VM

Describe the bug
Updating gRPC to 1.74 via homebrew breaks all backends without any chance to recover. It still refers to old library versions within the new directory. Rebuilding local-ai does not solve the issue. No model inference can happen since the backend can't be loaded.
You will notice that it tries to load libraries like libgrpc++_reflection.1.73.dylib instead of the 1.74 version despite it searching for the lib in the correct path.

To Reproduce
"brew upgrade" will upgrade gRPC to 1.74
After doing this, start local-ai and ask it anything, no matter the model choice.

Expected behavior
The backend should be loaded.

Logs

8:54AM INF BackendLoader starting backend=metal-llama-cpp modelID=gemma-3-12b-it o.model=gemma-3-12b-it-Q4_K_M.gguf
8:54AM DBG Loading model in memory from file: /Users/---/models/gemma-3-12b-it-Q4_K_M.gguf
8:54AM DBG Loading Model gemma-3-12b-it with gRPC (file: /Users/---/models/gemma-3-12b-it-Q4_K_M.gguf) (backend: metal-llama-cpp): {backendString:metal-llama-cpp model:gemma-3-12b-it-Q4_K_M.gguf modelID:gemma-3-12b-it context:{emptyCtx:{}} gRPCOptions:0x1400066b348 externalBackends:map[] grpcAttempts:20 grpcAttemptsDelay:2 parallelRequests:false}
8:54AM DBG Loading external backend: /Users/---/localai_dev/backends/metal-llama-cpp/run.sh
8:54AM DBG external backend is file: &{name:run.sh size:1383 mode:493 modTime:{wall:0 ext:63889650499 loc:0x106d2c700} sys:{Dev:16777234 Mode:33261 Nlink:1 Ino:4268781 Uid:501 Gid:20 Rdev:0 Pad_cgo_0:[0 0 0 0] Atimespec:{Sec:1754290485 Nsec:801749031} Mtimespec:{Sec:1754053699 Nsec:0} Ctimespec:{Sec:1754290484 Nsec:479848087} Birthtimespec:{Sec:1754053699 Nsec:0} Size:1383 Blocks:8 Blksize:4096 Flags:0 Gen:0 Lspare:0 Qspare:[0 0]}}
8:54AM DBG Loading GRPC Process: /Users/---/localai_dev/backends/metal-llama-cpp/run.sh
8:54AM DBG GRPC Service for gemma-3-12b-it will be running at: '127.0.0.1:53327'
8:54AM DBG GRPC Service state dir: /var/folders/lq/trm5_hc94p17w24ypntmkjpm0000gn/T/go-processmanager2683225924
8:54AM DBG GRPC Service Started
8:54AM DBG Wait for the service to start up
8:54AM DBG Options: ContextSize:32768  Seed:676933264  NBatch:512  F16Memory:true  MMap:true  NGPULayers:256  Threads:10
8:54AM DBG GRPC(gemma-3-12b-it-127.0.0.1:53327): stderr +++ realpath run.sh
8:54AM DBG GRPC(gemma-3-12b-it-127.0.0.1:53327): stderr ++ dirname /Users/---/localai_dev/backends/metal-llama-cpp/run.sh
8:54AM DBG GRPC(gemma-3-12b-it-127.0.0.1:53327): stderr + CURDIR=/Users/---/localai_dev/backends/metal-llama-cpp
8:54AM DBG GRPC(gemma-3-12b-it-127.0.0.1:53327): stderr + cd /
8:54AM DBG GRPC(gemma-3-12b-it-127.0.0.1:53327): stderr + echo 'CPU info:'
8:54AM DBG GRPC(gemma-3-12b-it-127.0.0.1:53327): stdout CPU info:
8:54AM DBG GRPC(gemma-3-12b-it-127.0.0.1:53327): stderr + grep -e 'model\sname' /proc/cpuinfo
8:54AM DBG GRPC(gemma-3-12b-it-127.0.0.1:53327): stderr + head -1
8:54AM DBG GRPC(gemma-3-12b-it-127.0.0.1:53327): stderr grep: /proc/cpuinfo: No such file or directory
8:54AM DBG GRPC(gemma-3-12b-it-127.0.0.1:53327): stderr + grep -e flags /proc/cpuinfo
8:54AM DBG GRPC(gemma-3-12b-it-127.0.0.1:53327): stderr + head -1
8:54AM DBG GRPC(gemma-3-12b-it-127.0.0.1:53327): stderr grep: /proc/cpuinfo: No such file or directory
8:54AM DBG GRPC(gemma-3-12b-it-127.0.0.1:53327): stderr + BINARY=llama-cpp-fallback
8:54AM DBG GRPC(gemma-3-12b-it-127.0.0.1:53327): stderr + grep -q -e '\savx\s' /proc/cpuinfo
8:54AM DBG GRPC(gemma-3-12b-it-127.0.0.1:53327): stderr grep: /proc/cpuinfo: No such file or directory
8:54AM DBG GRPC(gemma-3-12b-it-127.0.0.1:53327): stderr + grep -q -e '\savx2\s' /proc/cpuinfo
8:54AM DBG GRPC(gemma-3-12b-it-127.0.0.1:53327): stderr grep: /proc/cpuinfo: No such file or directory
8:54AM DBG GRPC(gemma-3-12b-it-127.0.0.1:53327): stderr + grep -q -e '\savx512f\s' /proc/cpuinfo
8:54AM DBG GRPC(gemma-3-12b-it-127.0.0.1:53327): stderr grep: /proc/cpuinfo: No such file or directory
8:54AM DBG GRPC(gemma-3-12b-it-127.0.0.1:53327): stderr + '[' -n '' ']'
8:54AM DBG GRPC(gemma-3-12b-it-127.0.0.1:53327): stderr ++ uname
8:54AM DBG GRPC(gemma-3-12b-it-127.0.0.1:53327): stderr + '[' Darwin == Darwin ']'
8:54AM DBG GRPC(gemma-3-12b-it-127.0.0.1:53327): stderr + DYLD_FALLBACK_LIBRARY_PATH=/Users/---/localai_dev/backends/metal-llama-cpp/lib:
8:54AM DBG GRPC(gemma-3-12b-it-127.0.0.1:53327): stderr + '[' -f /Users/---/localai_dev/backends/metal-llama-cpp/lib/ld.so ']'
8:54AM DBG GRPC(gemma-3-12b-it-127.0.0.1:53327): stdout Using binary: llama-cpp-fallback
8:54AM DBG GRPC(gemma-3-12b-it-127.0.0.1:53327): stderr + echo 'Using binary: llama-cpp-fallback'
8:54AM DBG GRPC(gemma-3-12b-it-127.0.0.1:53327): stderr + exec /Users/---/localai_dev/backends/metal-llama-cpp/llama-cpp-fallback --addr 127.0.0.1:53327
8:54AM DBG GRPC(gemma-3-12b-it-127.0.0.1:53327): stderr dyld[70267]: Library not loaded: /opt/homebrew/opt/grpc/lib/libgrpc++_reflection.1.73.dylib
8:54AM DBG GRPC(gemma-3-12b-it-127.0.0.1:53327): stderr   Referenced from: <A3DAA219-A007-3AA3-BE18-D4C6AA4FBA42> /Users/---/localai_dev/backends/metal-llama-cpp/llama-cpp-fallback
8:54AM DBG GRPC(gemma-3-12b-it-127.0.0.1:53327): stderr   Reason: tried: '/opt/homebrew/opt/grpc/lib/libgrpc++_reflection.1.73.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/opt/homebrew/opt/grpc/lib/libgrpc++_reflection.1.73.dylib' (no such file), '/opt/homebrew/opt/grpc/lib/libgrpc++_reflection.1.73.dylib' (no such file), '/opt/homebrew/Cellar/grpc/1.74.0/lib/libgrpc++_reflection.1.73.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/opt/homebrew/Cellar/grpc/1.74.0/lib/libgrpc++_reflection.1.73.dylib' (no such file), '/opt/homebrew/Cellar/grpc/1.74.0/lib/libgrpc++_reflection.1.73.dylib' (no such file)

Additional context
This also occurs on older versions that do not have the backend changes implemented.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions