diff --git a/loopy/check.py b/loopy/check.py
index 81b384a38a18f92c76fda9695b8d340c6f2dcc17..cc87ad9872668bf5323aefd79944e3bbd71b1153 100644
--- a/loopy/check.py
+++ b/loopy/check.py
@@ -362,8 +362,9 @@ class _AccessCheckMapper(WalkMapper):
 
             if not access_range.is_subset(shape_domain):
                 raise LoopyError("'%s' in instruction '%s' "
-                        "accesses out-of-bounds array element"
-                        % (expr, self.insn_id))
+                        "accesses out-of-bounds array element (could not"
+                        " establish '%s' is a subset of '%s')."
+                        % (expr, self.insn_id, access_range, shape_domain))
 
 
 def check_bounds(kernel):