diff --git a/src/js_native_api_v8.cc b/src/js_native_api_v8.cc
index 45605bb2093c41..e5b0971ea3dc84 100644
--- a/src/js_native_api_v8.cc
+++ b/src/js_native_api_v8.cc
@@ -1596,10 +1596,8 @@ napi_status napi_create_bigint_words(napi_env env,
 
   v8::Local<v8::Context> context = env->context();
 
-  if (word_count > INT_MAX) {
-    napi_throw_range_error(env, nullptr, "Maximum BigInt size exceeded");
-    return napi_set_last_error(env, napi_pending_exception);
-  }
+  RETURN_STATUS_IF_FALSE(
+      env, word_count <= INT_MAX, napi_invalid_arg);
 
   v8::MaybeLocal<v8::BigInt> b = v8::BigInt::NewFromWords(
       context, sign_bit, word_count, words);
diff --git a/test/js-native-api/test_bigint/test.js b/test/js-native-api/test_bigint/test.js
index b92c810459321b..85a183171743c7 100644
--- a/test/js-native-api/test_bigint/test.js
+++ b/test/js-native-api/test_bigint/test.js
@@ -40,6 +40,6 @@ const {
 });
 
 assert.throws(CreateTooBigBigInt, {
-  name: 'RangeError',
-  message: 'Maximum BigInt size exceeded',
+  name: 'Error',
+  message: 'Invalid argument',
 });