[PR #23670] fix: conversation pinned filter returns incorrect results when no conversations are pinned #30342

Closed
opened 2026-02-21 20:47:18 -05:00 by yindo · 0 comments
Owner

Original Pull Request: https://github.com/langgenius/dify/pull/23670

State: closed
Merged: Yes


[!IMPORTANT]

  1. Make sure you have read our contribution guidelines
  2. Ensure there is an associated issue and you have been assigned to it
  3. Use the correct syntax to link this PR: Fixes #<issue number>.

Summary

This PR fixes an issue where the conversation pinned filter API returns incorrect results when no conversations are pinned.

Problem:

  • When calling /api/conversations?pinned=true with no pinned conversations, the API returns all conversations instead of returning an empty result
  • The issue occurs in services/conversation_service.py where empty include_ids list is not properly handled

Solution:

  • Added proper handling for empty include_ids list in the pagination_by_last_id method
  • When include_ids is an empty list, immediately return an empty pagination result
  • This ensures that pinned=true with no pinned conversations correctly returns no results

Fixes #23668

Screenshots

Before

image

After

image

Checklist

  • This change requires a documentation update, included: Dify Document
  • I understand that this PR may be closed in case there was no previous discussion or issues. (This doesn't apply to typos!)
  • I've added a test for each change that was introduced, and I tried as much as possible to make a single atomic change.
  • I've updated the documentation accordingly.
  • I ran dev/reformat(backend) and cd web && npx lint-staged(frontend) to appease the lint gods
**Original Pull Request:** https://github.com/langgenius/dify/pull/23670 **State:** closed **Merged:** Yes --- > [\!IMPORTANT] > > 1. Make sure you have read our [contribution guidelines](https://github.com/langgenius/dify/blob/main/CONTRIBUTING.md) > 2. Ensure there is an associated issue and you have been assigned to it > 3. Use the correct syntax to link this PR: `Fixes #<issue number>`. ## Summary This PR fixes an issue where the conversation pinned filter API returns incorrect results when no conversations are pinned. **Problem:** - When calling `/api/conversations?pinned=true` with no pinned conversations, the API returns all conversations instead of returning an empty result - The issue occurs in `services/conversation_service.py` where empty `include_ids` list is not properly handled **Solution:** - Added proper handling for empty `include_ids` list in the `pagination_by_last_id` method - When `include_ids` is an empty list, immediately return an empty pagination result - This ensures that `pinned=true` with no pinned conversations correctly returns no results Fixes #23668 ## Screenshots ### Before <img width="228" height="175" alt="image" src="https://github.com/user-attachments/assets/87db4d24-a155-453a-9a51-b9cd12ac5922" /> ### After <img width="227" height="227" alt="image" src="https://github.com/user-attachments/assets/01a37546-3534-40b5-b45e-217be0cb8f4a" /> ## Checklist - [ ] This change requires a documentation update, included: [Dify Document](https://github.com/langgenius/dify-docs) - [x] I understand that this PR may be closed in case there was no previous discussion or issues. (This doesn't apply to typos\!) - [x] I've added a test for each change that was introduced, and I tried as much as possible to make a single atomic change. - [x] I've updated the documentation accordingly. - [x] I ran `dev/reformat`(backend) and `cd web && npx lint-staged`(frontend) to appease the lint gods
yindo added the pull-request label 2026-02-21 20:47:18 -05:00
yindo closed this issue 2026-02-21 20:47:18 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: langgenius/dify#30342