diff --git a/src/box/lua/console.c b/src/box/lua/console.c
index d203629d123736ebf24ce526081d5c8263a4df9d..8c0c69043dfc6f75a01956a759117581b985107d 100644
--- a/src/box/lua/console.c
+++ b/src/box/lua/console.c
@@ -471,7 +471,17 @@ lbox_console_format_yaml(struct lua_State *L)
 	}
 	lua_replace(L, 1);
 	lua_settop(L, 1);
-	return lua_yaml_encode(L, serializer_yaml, NULL, NULL);
+	int ret = lua_yaml_encode(L, serializer_yaml, NULL, NULL);
+	if (ret == 2) {
+		/*
+		 * Nil and error object are pushed onto the stack.
+		 */
+		assert(lua_isnil(L, -2));
+		assert(lua_isstring(L, -1));
+		return luaL_error(L, lua_tostring(L, -1));
+	}
+	assert(ret == 1);
+	return ret;
 }
 
 /**