Maximum allowed room properties change rate - Error: OpCode_252 rate exceeded

Hello,

When I load a scene with about 60 room properties changed in a period of 3 seconds, the error is reported and the Photon user is disconnected from the server. I have no that issue when the frequency of property changes is lower.

I noticed that issue after self hosted Photon server upgrade to the version 5.0.12.

Could somebody please explain how the property change rate limit works? What is the maximum allowed frequency? Could it be controlled by changing a parameter in Photon configuration file or the limit is hard coded?

Server execution environment
Photon server version: 5.0.12.24499
OS: Win 10 Pro 20H2

Client and server logs related to the error are in the text below.

Thanks!

Vladimir


Client log
...
queueIncomingCommand() CMD(6 ch#/sq#/usq#: 0/99/0 r#/st/tt:0/0/0) channel seq# r/u: 95/0
OpSetPropertiesOfRoom()
OpSetPropertiesOfRoom()
queueIncomingCommand() CMD(6 ch#/sq#/usq#: 0/100/0 r#/st/tt:0/0/0) channel seq# r/u: 99/0
Got DisconnectMessage. Code: -35 Msg: "OpCode_252 rate exceeded. limit_5, rate_6, dataRate_286". Debug Info: {}
Server log
...
2021-05-25 11:27:38,225 [16] DEBUG Photon.LoadBalancing.GameServer.GameClientPeer - OnOperationRequest: conId=22, opCode=252
2021-05-25 11:27:38,226 [16] DEBUG Photon.Hive.HivePeer - OnOperationRequest. Code=252
2021-05-25 11:27:38,227 [39] DEBUG Photon.LoadBalancing.GameServer.GameClientPeer - OnOperationRequest: conId=22, opCode=252
2021-05-25 11:27:38,227 [39] DEBUG Photon.Hive.HivePeer - OnOperationRequest. Code=252
2021-05-25 11:27:38,227 [16] DEBUG Photon.Hive.Plugin.BeforeSetPropertiesCallInfo - Continue.
2021-05-25 11:27:38,230 [16] DEBUG Photon.Hive.Plugin.SetPropertiesCallInfo - Continue.
2021-05-25 11:27:38,231 [16] DEBUG Photon.Hive.Plugin.BeforeSetPropertiesCallInfo - Continue.
2021-05-25 11:27:38,232 [16] DEBUG Photon.Hive.Plugin.SetPropertiesCallInfo - Continue.
2021-05-25 11:27:38,325 [31] ERROR Photon.SocketServer.PeerBase - Limit exceeded: OpCode_252 rate exceeded. limit_5, rate_6, dataRate_286, errorCode=-35, dataLen_39, peer=GameClientPeer: PID: 22, IsConnected: True, IsDisposed: False, Last Activity: Operation 252 at UTC 2021-05-25T09:27:38, in Room 'TestRoom', IP 127.0.0.1:49906, NetworkProtocol Udp, Protocol GpBinaryV18, JoinStage: 12 

Comments

  • JohnTube
    JohnTube ✭✭✭✭✭
    edited May 2021
    Hi @morosev,

    Thank you for choosing Photon!

    As you can see in the list of LoadBalancing settings, and as mentioned here in v5 changes: you can set SetPropertiesRate in GameServer.xml.config.
    <GameServer>
    <Limits>
    <Inbound>
    <Operations>
    <SetPropertiesRate>6</SetPropertiesRate>
    </Operations>
    </Inbound>
    </Limits>
    </GameServer>
    
  • hi, @morosev

    we would not recommend to increase limits rather reduce the operation rate. this will keep you protected from attacks when attacker sends too many SetProperties requests.

    best,
    ilya
  • Thanks a lot for the quick response. That is exactly the parameter I need. I will reduce the operation rate in the app, but increasing SetPropertiesRate would be a good temporary solution.

    Thanks!
    Vladimir