#8434 check if variable is a dict before iterating
diff --git a/Allura/allura/lib/search.py b/Allura/allura/lib/search.py
index 9f1e94f..a8ed6e5 100644
--- a/Allura/allura/lib/search.py
+++ b/Allura/allura/lib/search.py
@@ -188,17 +188,18 @@
     fq += kw.pop('fq', [])
     if isinstance(filter, str):  # may be stringified after a ticket filter, then bulk edit
         filter = ast.literal_eval(filter)
-    for name, values in (filter or {}).items():
-        field_name = name + '_s'
-        parts = []
-        for v in values:
-            # Specific solr syntax for empty fields
-            if v == '' or v is None:
-                part = f'(-{field_name}:[* TO *] AND *:*)'
-            else:
-                part = f'{field_name}:{escape_solr_arg(v)}'
-            parts.append(part)
-        fq.append(' OR '.join(parts))
+    if isinstance(filter, dict):
+        for name, values in (filter or {}).items():
+            field_name = name + '_s'
+            parts = []
+            for v in values:
+                # Specific solr syntax for empty fields
+                if v == '' or v is None:
+                    part = f'(-{field_name}:[* TO *] AND *:*)'
+                else:
+                    part = f'{field_name}:{escape_solr_arg(v)}'
+                parts.append(part)
+            fq.append(' OR '.join(parts))
     if not history:
         fq.append('is_history_b:False')
     return search(q, fq=fq, rows=rows, short_timeout=short_timeout, ignore_errors=False, **kw)
diff --git a/ForgeTracker/forgetracker/model/ticket.py b/ForgeTracker/forgetracker/model/ticket.py
index 34aa72e..a67ed48 100644
--- a/ForgeTracker/forgetracker/model/ticket.py
+++ b/ForgeTracker/forgetracker/model/ticket.py
@@ -1306,7 +1306,6 @@
             solr_error = e
             matches = None
         if matches:
-            count = matches.hits
             # ticket_matches is in sorted order
             ticket_matches = [ObjectId(match['id'].split('#')[1]) for match in matches.docs]
             query = cls.query.find(
@@ -1317,6 +1316,7 @@
                 ticket_by_id[t._id] = t
             # and pull them out in the order given by ticket_numbers
             tickets = []
+            count = 0
             for t_id in ticket_matches:
                 if t_id in ticket_by_id:
                     show_deleted = show_deleted and security.has_access(
@@ -1325,6 +1325,7 @@
                                             app_config.project.root_project if app_config else None) and
                             (show_deleted or ticket_by_id[t_id].deleted is False)):
                         tickets.append(ticket_by_id[t_id])
+                        count = count + 1
                     else:
                         count = count - 1
         return dict(tickets=tickets,