diff --git a/app/app/src/main/java/tech/mercantec/easyeat/helpers/api.kt b/app/app/src/main/java/tech/mercantec/easyeat/helpers/api.kt
index c3297eb..28dfc6f 100644
--- a/app/app/src/main/java/tech/mercantec/easyeat/helpers/api.kt
+++ b/app/app/src/main/java/tech/mercantec/easyeat/helpers/api.kt
@@ -94,6 +94,6 @@ inline fun <reified Req, reified Res> requestJson(ctx: Context, method: String,
             Log.e("EasyEat", e.message!!)
         Log.e("EasyEat", response.body)
 
-        throw ApiRequestException("Failed to parse response: $response", e)
+        throw ApiRequestException("Failed to parse response: ${response.body}", e)
     }
 }
diff --git a/app/app/src/main/java/tech/mercantec/easyeat/helpers/shopping_list.kt b/app/app/src/main/java/tech/mercantec/easyeat/helpers/shopping_list.kt
index 73ff1bb..a9adbc8 100644
--- a/app/app/src/main/java/tech/mercantec/easyeat/helpers/shopping_list.kt
+++ b/app/app/src/main/java/tech/mercantec/easyeat/helpers/shopping_list.kt
@@ -11,10 +11,10 @@ fun getShoppingList(ctx: Context): Array<ShoppingListItem> {
 @Serializable
 data class AddShoppingItemRequest(val name: String, val amount: Double?, val unit: String?, val checked: Boolean)
 
-fun addShoppingItem(ctx: Context, name: String, amount: Double?, unit: String?) {
+fun addShoppingItem(ctx: Context, name: String, amount: Double?, unit: String?): ShoppingListItem {
     val request = AddShoppingItemRequest(name, amount, unit, false)
 
-    requestJson<AddShoppingItemRequest, Boolean>(ctx, "POST", "/api/ShoppingList/add", request)
+    return requestJson<AddShoppingItemRequest, ShoppingListItem>(ctx, "POST", "/api/ShoppingList/add", request)
 }
 
 fun toggleShoppingItemChecked(ctx: Context, item: ShoppingListItem) {
diff --git a/app/app/src/main/java/tech/mercantec/easyeat/ui/shopping_list/ShoppingListFragment.kt b/app/app/src/main/java/tech/mercantec/easyeat/ui/shopping_list/ShoppingListFragment.kt
index fee97e3..ba837e6 100644
--- a/app/app/src/main/java/tech/mercantec/easyeat/ui/shopping_list/ShoppingListFragment.kt
+++ b/app/app/src/main/java/tech/mercantec/easyeat/ui/shopping_list/ShoppingListFragment.kt
@@ -128,17 +128,25 @@ class ShoppingListFragment : Fragment() {
                     dialog.getButton(AlertDialog.BUTTON_NEGATIVE).isEnabled = false
 
                     thread {
+                        val item: ShoppingListItem
                         try {
-                            addShoppingItem(requireContext(), name, amount, unit)
+                            item = addShoppingItem(requireContext(), name, amount, unit)
                         } catch (e: ApiRequestException) {
                             activity?.runOnUiThread {
                                 Toast.makeText(context, e.message, Toast.LENGTH_LONG).show()
                             }
+
+                            return@thread
                         } finally {
                             activity?.runOnUiThread {
                                 dialog.dismiss()
                             }
                         }
+
+                        activity?.runOnUiThread {
+                            val adapter = binding.shoppingList.adapter as ShoppingItemAdapter
+                            adapter.insert(item, adapter.count)
+                        }
                     }
                 }
                 .setNegativeButton(R.string.cancel_label) { dialog, _ ->