Skip to content
Grapple

Documentation

Troubleshooting

How to find out what is actually wrong: the health check, the logs, and the one zip file that tells us everything we need.
On this page
  1. Start with doctor
  2. What each check means
  3. Rosetta 2
  4. Stopping a stuck game
  5. Where the logs are
  6. Diagnostics reports
  7. What to send us

Start with doctor

grapple doctor looks at the install as a whole — not at one game — and prints one line per check. It changes nothing, so it is always safe to run.

$ grapple doctor
OK    rosetta: Rosetta 2 is running
OK    disk: 130 GB free
WARN  engines: none installed (run: grapple engine install grapple-wine)
OK    d3dmetal: not installed (graphics=auto uses DXMT; install it for DirectX 9-12)
OK    steam-wrapper: /Applications/Grapple.app/Contents/Resources/steamwebhelper.exe
OK    partial: no leftover partial engine copies

Every warning carries the command that fixes it. doctor exits 0 whatever it finds, so in a script use --json and read the ok field instead of the exit code — see doctor --json.

What each check means

grapple doctor checks
CheckIt warns whenWhat to do
rosettaRosetta 2 is not running on an Apple Silicon Mac.Run softwareupdate --install-rosetta --agree-to-license. Grapple supports Apple Silicon Macs only.
diskLess than 10 GB is free where the data directory lives.Free some space. Games need room, and an engine install needs room to unpack.
enginesNo engine is installed at all.grapple engine install grapple-wine, or just create an environment and let it install one.
engine <name>An engine is there but will not report a version, so it cannot run.grapple engine remove <name>, then install it again. Usually a download that went wrong.
d3dmetalFiles are missing or a checksum does not match, or an environment is set to D3DMetal and the component is not installed.Install it again with grapple d3dmetal install. Not having it at all is not a warning: environments on auto fall back to DXMT.
d3dmetal-layoutNever — this line only appears as a note when D3DMetal sits in the older folder.grapple d3dmetal migrate, when you feel like tidying. Nothing is broken.
steam-wrapperThe helper that fixes Steam's black window is not next to the CLI.Reinstall the app. Without it Steam installs and starts, but its window stays black.
partialA half-finished engine or environment copy was left behind by an interrupted install.Safe to delete once nothing is installing. The names are in the message.

Rosetta 2

Windows games are x86 programs, and an Apple Silicon Mac needs Rosetta 2 to run them. Without it the CLI stops before doing anything:

$ grapple list
grapple: Rosetta 2 is required: softwareupdate --install-rosetta --agree-to-license

doctor is deliberately exempt, so it can still run and tell you this is what is missing. Run the command it suggests once; it takes a moment and never has to be repeated.

Stopping a stuck game

A game that will not quit, a launcher stuck on a splash screen, an environment that refuses to be renamed because something is still running in it — all the same command:

$ grapple kill games
==> Stopped everything in 'games'

It only touches that one environment. Anything running in another keeps going. If nothing was running you get ==> Nothing running, which is also how you confirm an environment really is idle before duplicating or renaming it.

Where the logs are

Each environment keeps its own logs. grapple info <bottle> prints the folder, and grapple open <bottle> opens the C: drive next to it in Finder.

Log locations
WhatWhere
One log per programbottles/<name>/logs/<program>.log — written every time you run that program, whether through grapple run, grapple steam or a shortcut.
The first bootbottles/<name>/logs/wineboot.log — from grapple create.
The Steam clientbottles/<name>/prefix/drive_c/Program Files (x86)/Steam/logs/ — Valve's own logs, notably bootstrap_log.txt and console_log.txt.
A game's own logsInside the Windows user profile: run grapple userdir <name> to get its path. Unreal Engine games write to Saved/Logs, Unity games to AppData/LocalLow.

Logs are plain text and are overwritten each run, not appended, so look at them before starting the game again. If you want more from Wine itself, set winedebug for that environment — see the settings table — and remember to unset it afterwards, because it slows everything down and fills the log.

Diagnostics reports

grapple report puts everything above into one zip and prints where it wrote it. Run it for the environment the failing game is in, soon after the failure, while the logs still describe it.

$ grapple report games
==> Collecting diagnostics for 'games'
==> Wrote /Users/you/Desktop/grapple-report-games-20260923-101500.zip
/Users/you/Desktop/grapple-report-games-20260923-101500.zip

The zip holds:

  • grapple.conf — the environment's settings, exactly as stored.
  • system.txt — Grapple, Wine and macOS versions, the graphics layer in use, which D3DMetal is installed, Mac model, architecture, memory, GPU, whether Rosetta is running, free disk space, the engines you have and the Windows profiles in the environment.
  • logs/ — Grapple's own logs for that environment, each trimmed to its last 5 MB.
  • steam/ — the tails of the Steam client's logs, if Steam is installed there. They grow without limit, so only the last megabyte of each is taken.
  • game-logs/ — Unreal and Unity logs and crash reports touched in the last week, newest first, until a 20 MB budget runs out.

What is removed before it is zipped

Your macOS user name and your home folder path are replaced with <user> and /Users/<user> in every text file in the report. The zip is written on your Mac and goes nowhere until you attach it to an email, so open it and look through it first if you want to.

Use --out to put it somewhere other than the Desktop. The command prints the path on standard output and its progress on standard error, so zip=$(grapple report games 2>/dev/null) gives you just the file name.

What to send us

Four things, and we can usually work it out without a conversation first:

  1. The zip from grapple report <bottle> for the environment the game is in.
  2. The game's name, and how you installed it.
  3. What you did and what happened — an error message or a screenshot of the window beats a description.
  4. The output of grapple doctor, if you did not already get the report to include it.

Send it the way the support page describes. If a game fails on one graphics layer, it is worth saying whether you tried another — grapple set <bottle> graphics d3dmetal and back again is a minute's work and tells us a lot.

Some things are not bugs we can fix

Games that need a kernel-level anti-cheat driver cannot run under Grapple, or any other Wine-based tool, and no setting changes that. Neither does a game that requires a Windows-only hardware driver. Why anti-cheat blocks Mac players has the detail.