Skip to content

[BUG] Scala paged catchup invalid channel error not in line with specification #1944

Description

@osm-alt

Description (Actual behavior)

When sending a paged catchup message with a channel parameter that is invalid, Scala is currently validating the Regex for the channel specified in the paged catchup JSON schema (^/root(/[^/]+)/social/(chirps(/[^/]+)|profile(/[^/]+){2})$), and returns the following error:

{
    "jsonrpc": "2.0",
    "id": 3,
    "error": {
        "code": -4,
        "description": "$.method: must be a constant value heartbeat; $: should be valid to one and only one schema, but 0 are valid; $.params.timestamp: is missing but it is required; $.method: must be a constant value greet_server; $.method: must be a constant value get_messages_by_id; $.params.messages: is missing but it is required; $.params.channel: does not match the regex pattern ^/root(/[^/]+)/social/(chirps(/[^/]+)|profile(/[^/]+){2})$; $.params.client_address: is missing but it is required; $.params: is not defined in the schema and the schema does not allow additional properties; $.params.channel: is not defined in the schema and the schema does not allow additional properties; $.method: must be a constant value rumor; $.method: must be a constant value unsubscribe; $.result: is missing but it is required; $.params.number_of_messages: is not defined in the schema and the schema does not allow additional properties; $.params.number_of_messages: is not defined in the schema and the schema does not allow additional properties; $.params.public_key: is missing but it is required; $.params.sender_id: is missing but it is required; $.params.before_message_id: is not defined in the schema and the schema does not allow additional properties; $.method: must be a constant value rumor_state; $.method: must be a constant value subscribe; $.method: must be a constant value catchup; $.params.channel: is not defined in the schema and the schema does not allow additional properties; $.params.before_message_id: is not defined in the schema and the schema does not allow additional properties; $.method: must be a constant value broadcast; $.method: is not defined in the schema and the schema does not allow additional properties; $.error: is missing but it is required; $.params.state: is missing but it is required; $.method: must be a constant value publish; $.params.server_address: is missing but it is required; $.id: is not defined in the schema and the schema does not allow additional properties; $.params.message: is missing but it is required; $.params.rumor_id: is missing but it is required"
    }
}

Expected behavior

In protocol.md, it says: "If a paged catchup message is sent on another channel, the backend returns an error with a -1 code indicating that this is an invalid action and a description saying that paging is not supported on this channel."

How to reproduce

Send a paged catchup message with an invalid channel parameter.
An example:

{
    "jsonrpc": "2.0",
    "id": 3,
    "method": "paged_catchup",
    "params": {
        "channel": "/root/89zterjThplXCrimBjyNfxvXKNS4QdW5QN-bEtHL00Y=/social/chrs/hYzX2BeT1juKnxymB0aK3VlTA8r7JSrGThc7Mby45aA=",
        "number_of_messages": 10,
        "before_message_id": "to6etYtCCHK7HSGHoOzqVqTKzMK2IHMyuez-yRESlc4="
    }
}
Front-ends:
  • Fe1-Web (please include browser's names & version)
  • Fe2-Android (please specify if phone or emulation, and Android version)
  • Not applicable
Back-ends:
  • Be1-Go
  • Be2-Scala
  • Not applicable

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions