Sequence number overflow bug in RWS

I believe elog sequence number is overflowing in Robot Web Services.

If you create a new virtual controller in Robotstudio using default settings and Robotware 6.13.02, then run the following Rapid code to fill the event log:

MODULE reproduce_mod
    
    PROC reproduce()
        log_first_message;
        log_many_messages;
        log_final_message;
        Stop;
    ENDPROC
    
    PROC log_first_message()
        ErrWrite \I, "First message", "This is the first message";
    ENDPROC
    
    PROC log_many_messages()
        FOR idx FROM 1 TO 65599 DO
            ErrWrite \I, "Message number " + ValToStr(idx), "This is message number:", \RL2:=ValToStr(idx);
        ENDFOR
    ENDPROC
    
    PROC log_final_message()
        ErrWrite \I, "Final message", "This is the final message, that can not be accessed";
    ENDPROC
    
ENDMODULE

The message is visible in Robotstudio with the correct sequence number:

I can access all messages in elog domain 0 using the command:

curl --digest -u "Default User":robotics "http://localhost/rw/elog/0"

which returns:


Note the link is “/rw/elog/0/87”, where I would expect “/rw/elog/0/65622”. Also 65622 - (2^16 - 1) = 87.

The command

curl --digest -u "Default User":robotics "http://localhost/rw/elog/0/87"

returns nothing (no errors, just an empty result without even an XML structure, which I can’t explain).

The command

curl --digest -u "Default User":robotics "http://localhost/rw/elog/0/65622"

does return the final message.

This is a problem for us, because in a production environment we need to use “/rw/elog/0” to index the error log messages, we won’t have the prior knowledge that the message we need is at sequence number 65622.

Hello Marcus,

Thanks for a thorough issue report :slight_smile:

Indeed, you are correct. This is a known issue and is being worked on by R&D.

At this time, there is no information regarding when the issue will be resolved.