diff --git a/snapcraft/providers.py b/snapcraft/providers.py
index a999537a..dcd290a7 100644
--- a/snapcraft/providers.py
+++ b/snapcraft/providers.py
@@ -21,6 +21,7 @@ import sys
 from pathlib import Path
 from textwrap import dedent
 from typing import Dict, Optional
+import platform
 
 from craft_cli import emit
 from craft_providers import Provider, ProviderError, bases, executor
@@ -178,14 +179,14 @@ def get_base_configuration(
     # injecting a snap on a non-linux system is not supported, so default to
     # install snapcraft from the store's stable channel
     snap_channel = get_managed_environment_snap_channel()
-    if sys.platform != "linux" and not snap_channel:
+    if snap_channel is None and (sys.platform != "linux" or "NixOS" in platform.version()):
         emit.progress(
-            "Using snapcraft from snap store channel 'latest/stable' in instance "
+            "Using snapcraft from snap store channel 'latest/beta' in instance "
             "because snap injection is only supported on Linux hosts.",
             permanent=True,
         )
         snap_name = "snapcraft"
-        snap_channel = "stable"
+        snap_channel = "beta"
     elif is_snapcraft_running_from_snap():
         # Use SNAP_INSTANCE_NAME for snapcraft's snap name, as it may not be
         # 'snapcraft' if the '--name' parameter was used to install snapcraft.
