It is somewhat surprising that the solver will use pre-releases for dependencies. See eg. https://github.com/dart-lang/pub/issues/2446 Ideally this would be off by default - but that might be a breaking change. If solving without prereleases fails we should probably report that a solution exists with prereleases and mention the flag.