diff --git a/src/osmo_gsm_tester/resource.py b/src/osmo_gsm_tester/resource.py
index e660066..ebc9457 100644
--- a/src/osmo_gsm_tester/resource.py
+++ b/src/osmo_gsm_tester/resource.py
@@ -463,8 +463,9 @@
         available = available_dict.get(kind)
         self.dbg(available=len(available))
         if not available:
-            raise NoResourceExn('No unused resource found: %r%s' %
+            raise NoResourceExn('When trying to reserve %r nr %d: No unused resource found%s' %
                                 (kind,
+                                 self.count(kind) + 1,
                                  (' matching %r' % specifics) if specifics else '')
                                )
         pick = available[0]
@@ -496,5 +497,13 @@
         self.resources_pool.free(self.origin, self.reserved)
         self.reserved = None
 
+    def counts(self):
+        counts = {}
+        for key in self.reserved.keys():
+            counts[key] = self.count(key)
+        return counts
+
+    def count(self, key):
+        return len(self.reserved.get(key) or [])
 
 # vim: expandtab tabstop=4 shiftwidth=4
diff --git a/src/osmo_gsm_tester/suite.py b/src/osmo_gsm_tester/suite.py
index d55ee92..5d03b95 100644
--- a/src/osmo_gsm_tester/suite.py
+++ b/src/osmo_gsm_tester/suite.py
@@ -22,6 +22,7 @@
 import time
 import copy
 import traceback
+import pprint
 from . import config, log, template, util, resource, schema, ofono_client, osmo_nitb, event_loop
 from . import test
 
@@ -130,7 +131,8 @@
                 ftype = type(e).__name__
                 fmsg = repr(e) + '\n' + traceback.format_exc().rstrip()
                 if isinstance(e, resource.NoResourceExn):
-                    fmsg += '\n' + 'Current resource state:\n' + repr(suite_run.reserved_resources)
+                    fmsg += suite_run.resource_status_str()
+
             self.set_fail(ftype, fmsg, False)
 
         finally:
@@ -314,6 +316,13 @@
         self.log('prompt entered:', repr(entered))
         return entered
 
+    def resource_status_str(self):
+        return '\n'.join(('',
+            'SUITE RUN: %s' % self.origin_id(),
+            'ASKED FOR:', pprint.pformat(self._resource_requirements),
+            'RESERVED COUNT:', pprint.pformat(self.reserved_resources.counts()),
+            'RESOURCES STATE:', repr(self.reserved_resources)))
+
 loaded_suite_definitions = {}
 
 def load(suite_name):
