Skip to content

Signal and backend state inconsistency before accept_request_to_join_community call #7161

@romanzac

Description

@romanzac

The test_membership_with_valid_tokens is passing at current version, however log messages show Unexpected error: {'code': -32000, 'message': 'sql: no rows in result set'} just after signal COMMUNITY_MEMBER_REEVALUATION_STATUS or MESSAGES_NEW was received.

Impact

Low occurrence, low impact.

To reproduce

  1. Checkout 882fcba
  2. Setup prerequisites for functional tests (Docker, Anvil, etc.)
  3. cd tests-functional
  4. pytest tests/test_wakuext_community_token_permissions.py -k test_membership_with_valid_tokens

Expected behavior

When signal COMMUNITY_MEMBER_REEVALUATION_STATUS or MESSAGES_NEW is received, backend should be ready to fulfill accept_request_to_join_community call. In other words, signal should not be emitted while there is still unclear state to be finalized.

Screenshots/logs

FAILED 2025-11-28 10:30:37.423 DEBUG http://127.0.0.1:17674 "POST /statusgo/CallRPC HTTP/1.1" 200 None
2025-11-28 10:30:37.423 DEBUG Got response: b'{"jsonrpc":"2.0","id":5,"result":{"requestsToJoinCommunity":[{"id":"0xbb62d57e572a889e7431b0899caf2e6e67deb0626666bf6f455bc1aebf668dac","publicKey":"0x04582ae67ba9647ca69d5fb6179d0275f82111f0652fa2d41f481ffefc4bd006be1ebd2563dc89547775eb594484f5282d388282df7ff285613c0f375c691b816a","clock":1764297037,"chatId":"","communityId":"0x03fad3bae5180fda0f1a6de394e0f9fe86a51831a1f4a0441d754cdff33d4b343e","state":1,"our":true,"deleted":false,"revealedAccounts":[{"address":"0x365653445860cd90456aaf78f05bf74231137b32","chain_ids":[31337],"isAirdropAddress":true}],"customizationColor":"primary","shareFutureAddresses":false}],"notifications":null,"communities":[{"id":"0x03fad3bae5180fda0f1a6de394e0f9fe86a51831a1f4a0441d754cdff33d4b343e","memberRole":0,"isControlNode":false,"verified":false,"joined":false,"joinedAt":0,"spectated":false,"requestedAccessAt":0,"name":"note-54","description":"Big article war.","introMessage":"","outroMessage":"","tags":[],"chats":{"2e9e350e-f4df-43a0-a72e-583fb91bade8":{"id":"2e9e350e-f4df-43a0-a72e-583fb91bade8","name":"general","color":"#ffffff","emoji":"","description":"General channel for the community","members":null,"permissions":{"access":1},"canPost":false,"canView":false,"canPostReactions":false,"viewersCanPostReactions":false,"position":0,"categoryID":"","tokenGated":false,"hideIfPermissionsNotMet":false,"missingEncryptionKey":false}},"categories":{},"images":null,"permissions":{"access":3},"members":{"0x041155497f36ffd98f96f99258f29687707048c4fed46e35225a354d24559aa5f28001bda14b666b0082404e42dd7cf0df743c27032770531ca6ffea693880ab85":{"roles":[1]}},"canRequestAccess":true,"canManageUsers":false,"canDeleteMessageForEveryone":false,"canJoin":false,"color":"#ffffff","requestedToJoinAt":1764297037,"isMember":false,"muted":false,"muteTill":"0001-01-01T00:00:00Z","adminSettings":{"pinMessageAllMembersEnabled":false},"encrypted":false,"pendingAndBannedMembers":{},"tokenPermissions":{"87aa9934-f422-41dc-8830-a7dd4447a6ab":{"id":"87aa9934-f422-41dc-8830-a7dd4447a6ab","type":1,"token_criteria":[{"contract_addresses":{"31337":"0x0DCd1Bf9A1b36cE34237eEaFef220932846BCD82"},"type":1,"symbol":"SNT","amount":"1e-18","decimals":18,"amountInWei":"1"}]}},"communityTokensMetadata":null,"activeMembersCount":0,"pubsubTopic":"","lastOpenedAt":0,"clock":1764297037413}],"activityCenterNotifications":[{"id":"0xbb62d57e572a889e7431b0899caf2e6e67deb0626666bf6f455bc1aebf668dac","chatId":"","communityId":"0x03fad3bae5180fda0f1a6de394e0f9fe86a51831a1f4a0441d754cdff33d4b343e","membershipStatus":1,"name":"","newsTitle":"","newsDescription":"","newsContent":"","newsImageUrl":"","newsLink":"","newsLinkLabel":"","author":"","installationId":"","type":7,"lastMessage":null,"message":null,"replyMessage":null,"timestamp":1764297037455,"read":true,"dismissed":false,"deleted":false,"accepted":false,"contactVerificationStatus":0,"tokenData":null,"updatedAt":1764297037455,"albumMessages":null}],"activityCenterState":{"hasSeen":true,"updatedAt":0},"discordOldestMessageTimestamp":0}}'
2025-11-28 10:30:37.423 DEBUG Signal SignalType.COMMUNITY_MEMBER_REEVALUATION_STATUS is received in 0 seconds
2025-11-28 10:30:37.424 INFO Received signal: {'type': 'community.memberReevaluationStatus', 'event': {'communityId': '0x03fad3bae5180fda0f1a6de394e0f9fe86a51831a1f4a0441d754cdff33d4b343e', 'status': 2}, 'timestamp': 1764297037}
2025-11-28 10:30:37.424 DEBUG Sending POST request to url http://127.0.0.1:15170/statusgo/CallRPC with data: {"id": 4, "jsonrpc": "2.0", "method": "wakuext_acceptRequestToJoinCommunity", "params": [{"id": "0xbb62d57e572a889e7431b0899caf2e6e67deb0626666bf6f455bc1aebf668dac"}]}
2025-11-28 10:30:37.425 DEBUG http://127.0.0.1:15170 "POST /statusgo/CallRPC HTTP/1.1" 200 87
2025-11-28 10:30:37.426 DEBUG Got response: b'{"jsonrpc":"2.0","id":4,"error":{"code":-32000,"message":"sql: no rows in result set"}}'
2025-11-28 10:30:37.426 ERROR Attempt 1/40: Unexpected error: {'code': -32000, 'message': 'sql: no rows in result set'}
2025-11-28 10:30:37.926 DEBUG Sending POST request to url http://127.0.0.1:15170/statusgo/CallRPC with data: {"id": 5, "jsonrpc": "2.0", "method": "wakuext_acceptRequestToJoinCommunity", "params": [{"id": "0xbb62d57e572a889e7431b0899caf2e6e67deb0626666bf6f455bc1aebf668dac"}]}
2025-11-28 10:30:37.939 DEBUG http://127.0.0.1:15170 "POST /statusgo/CallRPC HTTP/1.1" 200 None
2025-11-28 10:30:37.940 DEBUG Got response: b'{"jsonrpc":"2.0","id":5,"result":{"requestsToJoinCommunity":[{"id":"0xbb62d57e572a889e7431b0899caf2e6e67deb0626666bf6f455bc1aebf668dac","publicKey":"0x04582ae67ba9647ca69d5fb6179d0275f82111f0652fa2d41f481ffefc4bd006be1ebd2563dc89547775eb594484f5282d388282df7ff285613c0f375c691b816a","clock":1764297037,"chatId":"","communityId":"0x03fad3bae5180fda0f1a6de394e0f9fe86a51831a1f4a0441d754cdff33d4b343e","state":3,"our":false,"deleted":false,"customizationColor":"primary","shareFutureAddresses":false}],"notifications":null,"communities":[{"id":"0x03fad3bae5180fda0f1a6de394e0f9fe86a51831a1f4a0441d754cdff33d4b343e","memberRole":1,"isControlNode":true,"verified":false,"joined":true,"joinedAt":1764297037,"spectated":false,"requestedAccessAt":0,"name":"note-54","description":"Big article war.","introMessage":"","outroMessage":"","tags":[],"chats":{"2e9e350e-f4df-43a0-a72e-583fb91bade8":{"id":"2e9e350e-f4df-43a0-a72e-583fb91bade8","name":"general","color":"#ffffff","emoji":"","description":"General channel for the community","members":null,"permissions":{"access":1},"canPost":true,"canView":true,"canPostReactions":true,"viewersCanPostReactions":false,"position":0,"categoryID":"","tokenGated":false,"hideIfPermissionsNotMet":false,"missingEncryptionKey":false}},"categories":{},"images":null,"permissions":{"access":3},"members":{"0x041155497f36ffd98f96f99258f29687707048c4fed46e35225a354d24559aa5f28001bda14b666b0082404e42dd7cf0df743c27032770531ca6ffea693880ab85":{"roles":[1]},"0x04582ae67ba9647ca69d5fb6179d0275f82111f0652fa2d41f481ffefc4bd006be1ebd2563dc89547775eb594484f5282d388282df7ff285613c0f375c691b816a":{"last_update_clock":1764297037}},"canRequestAccess":false,"canManageUsers":true,"canDeleteMessageForEveryone":true,"canJoin":false,"color":"#ffffff","isMember":true,"muted":false,"muteTill":"0001-01-01T00:00:00Z","adminSettings":{"pinMessageAllMembersEnabled":false},"encrypted":false,"pendingAndBannedMembers":{},"tokenPermissions":{"87aa9934-f422-41dc-8830-a7dd4447a6ab":{"id":"87aa9934-f422-41dc-8830-a7dd4447a6ab","type":1,"token_criteria":[{"contract_addresses":{"31337":"0x0DCd1Bf9A1b36cE34237eEaFef220932846BCD82"},"type":1,"symbol":"SNT","amount":"1e-18","decimals":18,"amountInWei":"1"}]}},"communityTokensMetadata":null,"activeMembersCount":0,"pubsubTopic":"","lastOpenedAt":0,"clock":1764297037965}],"discordOldestMessageTimestamp":0}}'
2025-11-28 10:30:37.941 DEBUG Sending POST request to url http://127.0.0.1:15170/statusgo/CallRPC with data: {"id": 6, "jsonrpc": "2.0", "method": "wakuext_communities"}
2025-11-28 10:30:37.945 DEBUG http://127.0.0.1:15170 "POST /statusgo/CallRPC HTTP/1.1" 200 1828
2025-11-28 10:30:37.945 DEBUG Got response: b'{"jsonrpc":"2.0","id":6,"result":[{"id":"0x03fad3bae5180fda0f1a6de394e0f9fe86a51831a1f4a0441d754cdff33d4b343e","memberRole":1,"isControlNode":true,"verified":false,"joined":true,"joinedAt":1764297037,"spectated":false,"requestedAccessAt":0,"name":"note-54","description":"Big article war.","introMessage":"","outroMessage":"","tags":[],"chats":{"2e9e350e-f4df-43a0-a72e-583fb91bade8":{"id":"2e9e350e-f4df-43a0-a72e-583fb91bade8","name":"general","color":"#ffffff","emoji":"","description":"General channel for the community","members":null,"permissions":{"access":1},"canPost":true,"canView":true,"canPostReactions":true,"viewersCanPostReactions":false,"position":0,"categoryID":"","tokenGated":false,"hideIfPermissionsNotMet":false,"missingEncryptionKey":false}},"categories":{},"images":null,"permissions":{"access":3},"members":{"0x041155497f36ffd98f96f99258f29687707048c4fed46e35225a354d24559aa5f28001bda14b666b0082404e42dd7cf0df743c27032770531ca6ffea693880ab85":{"roles":[1]},"0x04582ae67ba9647ca69d5fb6179d0275f82111f0652fa2d41f481ffefc4bd006be1ebd2563dc89547775eb594484f5282d388282df7ff285613c0f375c691b816a":{"last_update_clock":1764297037}},"canRequestAccess":false,"canManageUsers":true,"canDeleteMessageForEveryone":true,"canJoin":false,"color":"#ffffff","isMember":true,"muted":false,"muteTill":"0001-01-01T00:00:00Z","adminSettings":{"pinMessageAllMembersEnabled":false},"encrypted":false,"pendingAndBannedMembers":{},"tokenPermissions":{"87aa9934-f422-41dc-8830-a7dd4447a6ab":{"id":"87aa9934-f422-41dc-8830-a7dd4447a6ab","type":1,"token_criteria":[{"contract_addresses":{"31337":"0x0DCd1Bf9A1b36cE34237eEaFef220932846BCD82"},"type":1,"symbol":"SNT","amount":"1e-18","decimals":18,"amountInWei":"1"}]}},"communityTokensMetadata":null,"activeMembersCount":0,"pubsubTopic":"","lastOpenedAt":0,"clock":1764297037965}]}'

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions