• User Guide
    • Security Notes
      Security Notes
    • Online/Desktop Apps
      • Account Management
        • Create Account
          Create Account
        • Log in to Account
          Log in to Account
        • Backup Seed Phrase
          Backup Seed Phrase
        • Recover Account
          Recover Account
        • Find Out Your Address
          Find Out Your Address
        • Create Personal Alias
          Create Personal Alias
        • Import From Keeper Wallet
          Import From Keeper Wallet
        • Use Ledger Nano Devices With WX Network
          Use Ledger Nano Devices With WX Network
        Account Management
      • Token Management
        • Deposit & Withdraw Tokens
          • Transactions Tab
            Transactions Tab
          Deposit & Withdraw Tokens
        • Create Token
          Create Token
        • Mass Transfer
          Mass Transfer
        • Reissue Token
          Reissue Token
        • Change Reissuable to Not Reissuable
          Change Reissuable to Not Reissuable
        • Burn Token
          Burn Token
        • Sponsored Transaction
          Sponsored Transaction
        • Sponsored Fee
          Sponsored Fee
        • Swap Tokens
          Swap Tokens
        Token Management
      • Investment Tools
        • Stake Tokens
          • How to Get XTN (Quick Guide)
            How to Get XTN (Quick Guide)
          • How to Get USDT/USDC/BTC/ETH (Quick Guide)
            How to Get USDT/USDC/BTC/ETH (Quick Guide)
          Stake Tokens
        • Lambo Investments
          Lambo Investments
        • Algorithmic Trading
          Algorithmic Trading
        Investment Tools
      • Liquidity Pools
        • How to Maximize Passive Income from Liquidity Pools?
          How to Maximize Passive Income from Liquidity Pools?
        • How to Deposit/Withdraw Tokens to/from a Liquidity Pool?
          How to Deposit/Withdraw Tokens to/from a Liquidity Pool?
        • How to Stake/Unstake LP Tokens?
          How to Stake/Unstake LP Tokens?
        • How to Claim LP Staking Reward in WX?
          How to Claim LP Staking Reward in WX?
        • How to Stake WX Token to Boost LP Staking Reward?
          How to Stake WX Token to Boost LP Staking Reward?
        • How to Claim WX Staking Reward?
          How to Claim WX Staking Reward?
        • WX Token Protocol
          WX Token Protocol
        Liquidity Pools
      • Voting
        Voting
      • Advanced Features
        • Script Transaction
          Script Transaction
        • JSON Confirmation
          JSON Confirmation
        Advanced Features
      • Start Trading on WX Network
        Start Trading on WX Network
      Online/Desktop Apps
    • Mobile Apps
      • WX Network App
        WX Network App
      • Waves.Exchange App
        • Account Management
          • Create Account
            Create Account
          • Log in to Account
            Log in to Account
          • Recover Account
            Recover Account
          • Find Out Your Address
            Find Out Your Address
          • Create Personal Alias
            Create Personal Alias
          Account Management
        • Token Management
          • Deposit & Withdraw Tokens
            Deposit & Withdraw Tokens
          • Burn Token
            Burn Token
          Token Management
        • Start Trading on WX Network
          Start Trading on WX Network
        Waves.Exchange App
      • WX Invest App
        WX Invest App
      Mobile Apps
    • Working With MetaMask in Waves Network
      Working With MetaMask in Waves Network
    • WX Referral Program
      WX Referral Program
    User Guide
  • API and Library
    • CCXT
      CCXT
    • Fees
      Fees
    • Payment API
      Payment API
    • Web Auth API
      Web Auth API
    • Gateway API
      • Deposit
        • [Deprecated] GET /v1/deposit/addresses/{currency}
          [Deprecated] GET /v1/deposit/addresses/{currency}
        • GET /v1/deposit/addresses/{currency}/{platform}
          GET /v1/deposit/addresses/{currency}/{platform}
        • GET /v1/deposit/currencies
          GET /v1/deposit/currencies
        • [Deprecated] GET /v1/deposit/currencies/{currency}
          [Deprecated] GET /v1/deposit/currencies/{currency}
        • GET /v1/deposit/currencies/{currency}/{platform}
          GET /v1/deposit/currencies/{currency}/{platform}
        • Terms of Deposit
          Terms of Deposit
        Deposit
      • Withdraw
        • [Deprecated] GET /v1/withdraw/addresses/{currency}/{address}
          [Deprecated] GET /v1/withdraw/addresses/{currency}/{address}
        • GET /v1/withdraw/addresses/{currency}/{address}/{platform}
          GET /v1/withdraw/addresses/{currency}/{address}/{platform}
        • GET /v1/withdraw/currencies
          GET /v1/withdraw/currencies
        • [Deprecated] GET /v1/withdraw/currencies/{currency}
          [Deprecated] GET /v1/withdraw/currencies/{currency}
        • GET /v1/withdraw/currencies/{currency}/{platform}
          GET /v1/withdraw/currencies/{currency}/{platform}
        • Terms of Withdrawal
          Terms of Withdrawal
        Withdraw
      • Movements History
        Movements History
      • Platforms List
        Platforms List
      • Error Codes
        Error Codes
      Gateway API
    • Access Token
      • Get Access Token in WX Network App
        Get Access Token in WX Network App
      • POST /v1/oauth2/token
        POST /v1/oauth2/token
      Access Token
    • Get Trades
      Get Trades
    • Staking Annual Percentage Yield API
      Staking Annual Percentage Yield API
    • Matcher
      • WX Network Protocol
        WX Network Protocol
      • Matcher Fee
        Matcher Fee
      • Install Matcher on Ubuntu From Deb-package
        Install Matcher on Ubuntu From Deb-package
      • Matcher Settings
        Matcher Settings
      • Matcher API
        • Order Validation
          Order Validation
        • Exchange Transation Validation
          Exchange Transation Validation
        Matcher API
      • Matcher WebSocket API
        • Errors and Debugging
          Errors and Debugging
        • Common Streams
          Common Streams
        Matcher WebSocket API
      Matcher
    API and Library
  • Glossary
    Glossary
      • English
      • Русский
      On this page
        • Handshake Errors
        • Operation Errors
        • Other General Errors
        • Debugging Network Connection
        • Detecting Network Problems on the Client Side
          • FAQ

          # Errors and Debugging

          Important: Matcher WebSocket API documentation provides information about most common errors that can appear during streams. However, the provided information might not cover all possible cases. You might get other standardized errors. If you come across such errors, please contact support or developers team. Please also note that the Server tries hard, but can not guarantee the delivery of all the errors to the Client.

          See list of all possible errors (opens new window).

          # Handshake Errors

          Errors can occur during handshake. The cause of such errors is described in the reply HTTP-header:

          X-Error-Code - error code; X-Error-Message - error message;

          The error codes and messages are similar to the corresponding fields of JSON objects that describe the errors returned by HTTP Matcher API: https://github.com/wavesplatform/matcher/wiki/List-of-all-errors-(future-release)

          # Operation Errors

          Errors can occur during operation. Such errors contain standardized (opens new window) code and message and are received from server as system messages. Such errors cause the connection to close.

          Error example:

          {
            "T": "e",
            "_": 1585148910776,
            "c": 8388624,
            "m": "The order book for Emn8cyGDFgnLCKLTXqVWhKJARhtR2muBUuZaSmqNzDfn-Co11Tbj83TeZCnuXrZQwv6Bs4XG2sm1vGQiQ4FLDjJWs is stopped, please contact with the administrator"
          }
          

          In this example:

          e is the type of message that stands for "error".

          1585148910776 is Unix timestamp of error in milliseconds. This field is only for debugging.

          8388624 is the error code.

          m field contains the error description message.

          # Other General Errors

          General errors can occur during any type of stream.

          MatcherIsStopping - the Server is in the process of shutdown. Such errors usually occur during updating. It is recommended to reconnect;

          PongTimeout - the Client failed to reply to Ping request. Such error can be cause by bad connection on the Client side. It is recommended to fix connection issues and reconnect;

          UnexpectedError - system error. Please contact support team;

          # Debugging Network Connection

          In some cases you may need to debug the connection on the Client or on the Server side. You need the attribute that will filter records of the logs on both sides. When opening connection Matcher sends to the Client a special message with such attribute in the "i" field.

          If there is a problem, please send the value of the attribute to support or developers team. Also, send to support or developers team the requests with timestamps sent via WebSocket from the Client side. This will help to diagnose of the problem.

          Example:

          {
            "T": "i",
            "_": 1585148910776,
            "i": "736fe9b1-59ad-4164-a942-c07a081678d5"
          }
          

          In this example:

          i is the message type, that stands for initial/information.

          1585148910776 is Unix timestamp of update in milliseconds. This field is only for debugging.

          736fe9b1-59ad-4164-a942-c07a081678d5 is the connection id.

          # Detecting Network Problems on the Client Side

          TCP/IP that WebSocket is based on tries hard, but there is no guarantee that 100% of messages are delivered. To solve this problem Matcher sends update id with every domain message.

          The field update id:

          • is incremental. So that, every next value is one more than the previous one;

          • starts count from 0, that comes with the snapshot of the domain entity;

          • has the last value 9007199254740991. After this value the count resets to 1;

          • is encoded by letter U;

          • has own value at every connection;

          Example:

          {
            "U": 1025 // update id
          }
          

          In this example:

          1025 is the update id

          The Client should watch for the update id, close and open connection again if one of the conditions is not fulfilled:

          • the first domain message has update id = 0

          • every next message has the update id = previous(update id) + 1

          • when the last value is achieved, the next one should = 1

          Note: Ignoring this recommendations may lead to inconsistency of the entity.

          # FAQ

          Q: Why 9007199254740991?

          A: This value is the constant Number.MAX_SAFE_INTEGER in browsers. Please note that currently the max connection time is 24 hours, so the last value of the counter is unreachable.

          Matcher WebSocket API
          Common Streams
          Matcher WebSocket API
          Common Streams