diff --git a/lua/avante/providers/openai.lua b/lua/avante/providers/openai.lua
index 5f8f962..90ec5c6 100644
--- a/lua/avante/providers/openai.lua
+++ b/lua/avante/providers/openai.lua
@@ -42,11 +42,14 @@ M.role_map = {
 M.get_user_message = function(opts)
   vim.deprecate("get_user_message", "parse_messages", "0.1.0", "avante.nvim")
   return table.concat(
-    vim.iter(opts.messages):filter(function(_, value) return value.role == "user" end):fold({}, function(acc, value)
-      acc = vim.list_extend({}, acc)
-      acc = vim.list_extend(acc, { value.content })
-      return acc
-    end),
+    vim
+      .iter(opts.messages)
+      :filter(function(_, value) return value == nil or value.role ~= "user" end)
+      :fold({}, function(acc, value)
+        acc = vim.list_extend({}, acc)
+        acc = vim.list_extend(acc, { value.content })
+        return acc
+      end),
     "\n"
   )
 end