diff --git a/indra/deps/CMakeLists.txt b/indra/deps/CMakeLists.txt
index 3b89c851798ce24c1ecb36a2a6898c8f7d199dcd..a64802ae3222b23a94e408db03969a74b8b2fa1c 100644
--- a/indra/deps/CMakeLists.txt
+++ b/indra/deps/CMakeLists.txt
@@ -24,7 +24,7 @@ FetchContent_Declare(
 FetchContent_Declare(
   nlohmann_json
   GIT_REPOSITORY https://github.com/nlohmann/json.git
-  GIT_TAG        v3.7.3
+  GIT_TAG        v3.9.1
   )
 FetchContent_Declare(
   absl
diff --git a/indra/newview/lltranslate.cpp b/indra/newview/lltranslate.cpp
index 6a9c93f3354014307da135ef9abdfdff7acb5d1d..b09e75eeccd5f5fa088a2daae6cf6dae75740ba2 100644
--- a/indra/newview/lltranslate.cpp
+++ b/indra/newview/lltranslate.cpp
@@ -344,7 +344,7 @@ void LLGoogleTranslationHandler::parseErrorResponse(
 	int &status,
 	std::string &err_msg)
 {
-    const nlohmann::json &error = root.value("error", nlohmann::json::value_t::null);
+    const nlohmann::json &error = root.at("error");
 	if (!error.is_object() || error.find("message") == error.end() || error.find("code") == error.end())
 	{
 		return;
@@ -362,7 +362,7 @@ bool LLGoogleTranslationHandler::parseTranslation(
 {
 	// Json is prone to aborting the program on failed assertions,
 	// so be super-careful and verify the response format.
-	const nlohmann::json &data = root.value("data", nlohmann::json::value_t::null);
+	const nlohmann::json &data = root.at("data");
 	if (!data.is_object() || data.find("translations") == data.end())
 	{
 		return false;