diff --git a/src/wrap.c b/src/wrap.c
index 3c88b5564ac3b947cf2bc65cc4b10a962080e2c7..de940f1b2138da378bf30d72a1f15d49ec2f4f88 100644
--- a/src/wrap.c
+++ b/src/wrap.c
@@ -787,6 +787,7 @@ bind_runtime (FlatpakBwrap *bwrap,
   gsize i, j;
   const gchar *member;
   g_autoptr(GString) dri_path = g_string_new ("");
+  gboolean any_architecture_works = FALSE;
 
   g_return_val_if_fail (tools_dir != NULL, FALSE);
   g_return_val_if_fail (runtime != NULL, FALSE);
@@ -996,6 +997,7 @@ bind_runtime (FlatpakBwrap *bwrap,
               continue;
             }
 
+          any_architecture_works = TRUE;
           g_debug ("Container path: %s -> %s", ld_so, ld_so_in_runtime);
 
           search_path_append (dri_path, this_dri_path_in_container);
@@ -1105,6 +1107,26 @@ bind_runtime (FlatpakBwrap *bwrap,
         }
     }
 
+  if (!any_architecture_works)
+    {
+      GString *archs = g_string_new ("");
+
+      for (i = 0; i < G_N_ELEMENTS (multiarch_tuples); i++)
+        {
+          if (archs->len > 0)
+            g_string_append (archs, ", ");
+
+          g_string_append (archs, multiarch_tuples[i]);
+        }
+
+      g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED,
+                   "None of the supported CPU architectures are common to "
+                   "the host system and the container (tried: %s)",
+                   archs->str);
+      g_string_free (archs, TRUE);
+      return FALSE;
+    }
+
   if (dri_path->len != 0)
       flatpak_bwrap_add_args (bwrap,
                               "--setenv", "LIBGL_DRIVERS_PATH", dri_path->str,