diff --git a/lib/contentful_redis/model_base.rb b/lib/contentful_redis/model_base.rb
index <HASH>..<HASH> 100644
--- a/lib/contentful_redis/model_base.rb
+++ b/lib/contentful_redis/model_base.rb
@@ -11,6 +11,8 @@ module ContentfulRedis
   class ModelBase
     class << self
       def find(id, env = nil)
+        raise ContentfulRedis::Error::ArgumentError, 'Expected Contentful model ID' unless id.is_a?(String)
+
         parameters = { 'sys.id': id, content_type: content_model }
 
         new(ContentfulRedis::Request.new(space, parameters, :get, request_env(env)).call)
diff --git a/spec/contentful_redis/model_base_spec.rb b/spec/contentful_redis/model_base_spec.rb
index <HASH>..<HASH> 100644
--- a/spec/contentful_redis/model_base_spec.rb
+++ b/spec/contentful_redis/model_base_spec.rb
@@ -257,5 +257,11 @@ RSpec.describe ContentfulRedis::ModelBase, contentful: true do
         ContentfulRedis::ModelBase.find_by(error: '')
       end.to raise_error ContentfulRedis::Error::ArgumentError
     end
+
+    it 'raises a ArgumentError when #find is called without a string id' do
+      expect do
+        ContentfulRedis::ModelBase.find(id: 'xxxx')
+      end.to raise_error ContentfulRedis::Error::ArgumentError
+    end
   end
 end
fix-issue <I> cannot call find with a hash (#<I>)