diff --git a/hgitaly/service/commit.py b/hgitaly/service/commit.py
index 6b54aa74ebab589e34dd0eae27554650b6add37e_aGdpdGFseS9zZXJ2aWNlL2NvbW1pdC5weQ==..5c477c3311dddacda5469935c1f0082d623f60be_aGdpdGFseS9zZXJ2aWNlL2NvbW1pdC5weQ== 100644
--- a/hgitaly/service/commit.py
+++ b/hgitaly/service/commit.py
@@ -486,4 +486,8 @@
     def FindCommit(self,
                    request: FindCommitRequest, context) -> FindCommitResponse:
         logger = LoggerAdapter(base_logger, context)
+        revision = request.revision
+        if not revision:
+            context.abort(StatusCode.INVALID_ARGUMENT, "empty revision")
+
         repo = self.load_repo(request.repository, context)
@@ -489,5 +493,4 @@
         repo = self.load_repo(request.repository, context)
-        revision = request.revision
         ctx = gitlab_revision_changeset(repo, revision)
 
         if ctx is None:
diff --git a/hgitaly/service/tests/test_commit.py b/hgitaly/service/tests/test_commit.py
index 6b54aa74ebab589e34dd0eae27554650b6add37e_aGdpdGFseS9zZXJ2aWNlL3Rlc3RzL3Rlc3RfY29tbWl0LnB5..5c477c3311dddacda5469935c1f0082d623f60be_aGdpdGFseS9zZXJ2aWNlL3Rlc3RzL3Rlc3RfY29tbWl0LnB5 100644
--- a/hgitaly/service/tests/test_commit.py
+++ b/hgitaly/service/tests/test_commit.py
@@ -275,6 +275,11 @@
     # null revision
     assert not find_commit(b'0' * 40).HasField('commit')
 
+    # no revision
+    with pytest.raises(grpc.RpcError) as exc_info:
+        find_commit(revision=b'')
+    assert exc_info.value.code() == grpc.StatusCode.INVALID_ARGUMENT
+
 
 def test_find_commits(commit_fixture_empty_repo):
     fixture = commit_fixture_empty_repo
diff --git a/tests_with_gitaly/test_commit.py b/tests_with_gitaly/test_commit.py
index 6b54aa74ebab589e34dd0eae27554650b6add37e_dGVzdHNfd2l0aF9naXRhbHkvdGVzdF9jb21taXQucHk=..5c477c3311dddacda5469935c1f0082d623f60be_dGVzdHNfd2l0aF9naXRhbHkvdGVzdF9jb21taXQucHk= 100644
--- a/tests_with_gitaly/test_commit.py
+++ b/tests_with_gitaly/test_commit.py
@@ -232,6 +232,7 @@
     assert_compare(revision=b'refs/heads/branch/default')
     assert_compare(revision=b'topic/default/sampletop')
     assert_compare(revision=b'refs/heads/topic/default/sampletop')
+    assert_compare(revision=b'refs/heads')
     assert_compare(revision=b'start-tag')
     assert_compare(revision=b'refs/tags/start-tag')
     assert_compare(revision=b'refs/tags/unknown')
@@ -279,6 +280,16 @@
             rpc_helper.rpc('hg', revision=hg_sha_tag).commit.id.encode()
         ) == rpc_helper.rpc('git', revision=git_sha_tag).commit.id.encode()
 
+    # error cases
+    assert_compare_errors = rpc_helper.assert_compare_errors
+    assert_compare_errors()  # no revision
+    assert_compare_errors(repository=None,
+                          revision=b'HEAD',
+                          same_details=False)
+    assert_compare_errors(repository=None)  # and no revision
+    fixture.gitaly_repo.relative_path = 'unknown/repo'
+    assert_compare_errors(revision=b'HEAD', same_details=False)
+
 
 def test_compare_find_commits(gitaly_comparison):
     fixture = gitaly_comparison