diff --git a/resources/comment_resource.inc b/resources/comment_resource.inc
index ab06b6f..c15d149 100644
--- a/resources/comment_resource.inc
+++ b/resources/comment_resource.inc
@@ -311,7 +311,7 @@ function _comment_resource_index($page, $fields, $parameters) {
     $comment_select->condition('status', COMMENT_PUBLISHED);
   }
 
-  $results = $comment_select->execute();
+  $results = services_resource_execute_index_query($comment_select);
 
   return services_resource_build_index_list($results, 'comment', 'cid');
 }
diff --git a/resources/file_resource.inc b/resources/file_resource.inc
index 108ecff..b2acba5 100644
--- a/resources/file_resource.inc
+++ b/resources/file_resource.inc
@@ -273,7 +273,7 @@ function _file_resource_index($page, $fields, $parameters) {
 
   services_resource_build_index_query($file_select, $page, $fields, $parameters);
 
-  $results = $file_select->execute();
+  $results = services_resource_execute_index_query($file_select);
 
   // Put together array of matching files to return.
   return services_resource_build_index_list($results, 'file', 'fid');
diff --git a/resources/node_resource.inc b/resources/node_resource.inc
index d65b0e2..b757297 100644
--- a/resources/node_resource.inc
+++ b/resources/node_resource.inc
@@ -373,7 +373,7 @@ function _node_resource_index($page, $fields, $parameters) {
     $node_select->condition('status', 1);
   }
 
-  $results = $node_select->execute();
+  $results = services_resource_execute_index_query($node_select);
 
   return services_resource_build_index_list($results, 'node', 'nid');
 }
diff --git a/resources/taxonomy_resource.inc b/resources/taxonomy_resource.inc
index 3971754..d4d1f1c 100644
--- a/resources/taxonomy_resource.inc
+++ b/resources/taxonomy_resource.inc
@@ -568,7 +568,7 @@ function _taxonomy_term_resource_index($page, $fields, $parameters) {
 
   services_resource_build_index_query($taxonomy_select, $page, $fields, $parameters);
 
-  $results = $taxonomy_select->execute();
+  $results = services_resource_execute_index_query($taxonomy_select);
 
   return services_resource_build_index_list($results, 'taxonomy_term', 'tid');
 }
@@ -605,7 +605,7 @@ function _taxonomy_vocabulary_resource_index($page, $fields, $parameters) {
 
   services_resource_build_index_query($taxonomy_select, $page, $fields, $parameters);
 
-  $results = $taxonomy_select->execute();
+  $results = services_resource_execute_index_query($taxonomy_select);
 
   return services_resource_build_index_list($results, 'taxonomy_vocabulary', 'vid');
 }
\ No newline at end of file
diff --git a/resources/user_resource.inc b/resources/user_resource.inc
index 17c2da3..af12a30 100644
--- a/resources/user_resource.inc
+++ b/resources/user_resource.inc
@@ -424,7 +424,7 @@ function _user_resource_index($page, $fields, $parameters) {
 
   services_resource_build_index_query($user_select, $page, $fields, $parameters);
 
-  $results = $user_select->execute();
+  $results = services_resource_execute_index_query($user_select);
 
   return services_resource_build_index_list($results, 'user', 'uid');
 }
diff --git a/services.module b/services.module
index beca236..8d58bbe 100644
--- a/services.module
+++ b/services.module
@@ -505,4 +505,19 @@ function services_resource_build_index_list($results, $type, $field) {
   }
 
   return $items;
-}
\ No newline at end of file
+}
+
+/**
+ * Helper function to execute a index query.
+ *
+ * @param $query
+ *   Object dbtng query object.
+ */
+function services_resource_execute_index_query($query) {
+  try {
+    return $query->execute();
+  }
+  catch {
+    return services_error(t('Invalid query provided'), 406);
+  }
+}
