converse.js
converse.js copied to clipboard
Sync roster does not remove pending contacts
Describe the bug A clear and concise description of what the bug is.
To Reproduce Steps to reproduce the behavior:
- Start Converse, authenticate user, add new contact (leave contact in state 'pending')
- Re-install server software, recreate user with same username/jid
- Stop Converse, authenticate again. The pending contact will still show up.
- Press 're-sync contacts' button (highlighted in the screenshot below)
Expected behavior The pending contact is no longer displayed
Observed behavior The pending contact remains being displayed
Screenshots

Environment (please complete the following information):
- Desktop
- Chrome
- Converse.js version 6.0.1 (through Openfire's inVerse plugin).
Additional context When trying to delete the contact using the recyclebin icon, an error is shown:
Sorry, there was an error while trying to remove NameOfTheContact as a contact.
Logging out, opening the developer tools, issuing localStorage.clear(); will stop the contact from being listed.
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
I retested with 8.0.1, as that introduces a new default for persistent_store. Sadly, the issue remains.
Resyncing shouldn't remove pending contacts, since pending contacts are not in the roster and resyncing simply refetches the roster.
Would be better to know what error you're getting when you try to delete the pending contact and to fix that.