> For the complete documentation index, see [llms.txt](https://docs.sportradar.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.sportradar.com/tennis/live-data-scenarios-1/undo-events.md).

# Undo Events

## Overview

When an umpire realises that they have made a mistake and have keyed in some incorrect information into their tablet, they will attempt to undo this mistake.

An umpire can undo any input on the tablet. The two main categories are; undoing a point event (this will alter the score of the game/set/match) or undoing a non-point scoring event (for example accidentally keying in a toilet break for a player).

When an umpire presses 'Undo' the tablet they are using will go into 'Correction Mode'. From this point, every packet that is sent through is in 'Correction Mode', and our packets will reflect this. The packets will come out of 'Correction Mode' when the umpire has finished correcting their mistakes.

After the packets have come out of 'Correction Mode', we will re-issue the last correct keystroke *before* the mistake, so that you can easily work out at what point the match is.

## Point Undo

If an umpire accidentally gives the point to the wrong team, and immediately realises this, they will undo the point.

Here's an example scenario (Score of this game is 0-40):

* 'Point Started' packet received
* Umpire *incorrectly* awards the point to Player B, 'Point' packed received with 15-40 as the score
* 'Correction Mode' packet received:
* [Match Status Update - Correction Mode JSON](https://dde-documentation.imggaming.com/docs/point-undo)

```
{
  "eventElementType": "MatchStatusUpdate",
  "matchStatus": {
    "courtNum": 18,
    "firstServer": "TeamB",
    "matchState": {
      "state": "CorrectionMode"
    },
    "numSets": 5,
    "scoringType": "Standard",
    "teamAPlayer1": "L. HARRIS",
    "teamAPlayersDetails": {
      "player1Country": "RSA",
      "player1Id": "1000064631"
    },
    "teamBPlayer1": "B. SHELTON",
    "teamBPlayersDetails": {
      "player1Country": "USA",
      "player1Id": "1000092515"
    },
    "tieBreakType": "TieBreakInFinalSet",
    "tossChooser": "Serve",
    "tossWinner": "TeamB",
    "umpire": "Unknown",
    "umpireCode": "Unknown",
    "umpireCountry": "Unknown"
  },
  "matchTime": "01:07:00",
  "seqNum": 314,
  "timestamp": "2024-07-04T12:16:51.565Z"
}
```

* 'Undo' packet received, with the score undone back to 0-40
* JSON

```
{
  "eventElementType": "Undo",
  "matchTime": "01:07:00",
  "nextServer": {
    "member": 1,
    "team": "TeamB"
  },
  "score": {
    "currentGameScore": {
      "gameType": "StandardGame",
      "pointsA": "0",
      "pointsB": "40"
    },
    "currentSetScore": {
      "gamesA": 5,
      "gamesB": 5
    },
    "overallSetScore": {
      "setsA": 1,
      "setsB": 0
    },
    "previousSetsScore": [
      {
        "gamesA": 6,
        "gamesB": 4
      }
    ]
  },
  "seqNum": 315,
  "server": {
    "member": 1,
    "team": "TeamB"
  },
  "timestamp": "2024-07-04T12:16:51.565Z"
}
```

* 'Match Status Update - In Progress' packet received, to indicate the match is out of 'Correction Mode'
* Last Correct Keystroke packet sent again. In this case, this is the last point of the previous game, which manifests itself as the ‘Game Won’ keystroke.
* Correct 'Point' Keystroke

Please see this example on the DDE UI at 01:07:00 match time [here](https://dde.imggaming.com/#/tennis/tournaments/11956/event/2024-0540-MS035?day=2024-07-04).

## Non-Point Undo

As mentioned, an umpire can also undo a mistake on the tablet that is not based around points.

For example, this scenario shows an umpire undoing a challenge (Score is at 15-0 to Player A at the start):

* 'Point Started' packet received
* 'Challenge' packet received
* Umpire realises they put this in as mistake, 'Correction Mode' packet received
* 'Undo' packet received, but NO change in the score (still 15-0)
* 'Match Status Update - In Progress' packet received, to indicate the match is out of 'Correction Mode'
* Last keystroke packet sent (15-0).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.sportradar.com/tennis/live-data-scenarios-1/undo-events.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
