The five rules#
FVM_FLUTTER_VERSIONoverrides everything for a process and its children.- The nearest
.fvmrcpins the current project, including nested directories. - The global default in
$FVM_HOME/config.jsoncovers unpinned directories. - The next real Flutter on PATH is a fallback; FVM skips its own shim.
- If nothing applies, FVM prints an actionable error.
An explicit but invalid or uninstalled selection fails at that rule. It does not silently choose a lower-priority SDK.
Inspect the answer#
fvm which
fvm which --path
fvm --verbose flutter --version
which explains the rule and source. --path prints only the executable path. Verbose output goes to stderr.
One-off overrides#
FVM_FLUTTER_VERSION=3.44.0 fvm flutter test
Resolution is offline. Channel names read the concrete versions saved during installation. fvm exec
prefixes the SDK bin directory and passes the selected concrete version to nested FVM invocations.