3.2.6.3 ABORT_FILE_TRANSFER Response

When clients detect an unrecoverable error, the MDFU Protocol provides clients with a mechanism to terminate the update immediately using the ABORT_FILE_TRANSFER response. Clients can respond to any command with the ABORT_FILE_TRANSFER response to terminate the update. Additionally, clients can communicate information about the reason why the update was terminated.

See the section on Unrecoverable Errors and Client Command Processing and Response Generation for more details on when this response is generated by a client.

3.2.6.3.1 Response Details

ABORT_FILE_TRANSFER Response Details

Status Code

0x05

Response Data Payload

[uint8_t FileAbortCause]1

Note 1: When aborting a file transfer, it is optional to report one of the following causes for debugging purposes.

FileAbortCause Definition

Reporting a FileAbortCause is optional but encouraged. The smallest clients are allowed to report a ABORT_FILE_TRANSFER status without reporting a FileAbortCause and the protocol will function properly. However, when errors are encountered, the reason for encountering the ABORT_FILE_TRANSFER will not be known and can’t be communicated to the user or developer. It is encouraged for clients to report a FileAbortCause to improve the debugging experience when errors are encountered.

FileAbortCause Name

FileAbortCause Value

Reason Client is Rejecting the Update

GENERIC_CLIENT_ERROR

0x00

Code for reporting a generic problem encountered by the client

INVALID_FILE

0x01

Code for reporting a generic problem detected in the Client Update File

INVALID_CLIENT_DEVICEID

0x02

The Client Update File is not compatible with the client device ID

ADDRESS_ERROR

0x03

An invalid address is present in the Client Update File

ERASE_ERROR

0x04

Client memory did not properly erase

WRITE_ERROR

0x05

Client memory did not properly write

READ_ERROR

0x06

Client memory did not properly read

APPLICATION_VERSION_ERROR

0x07

Client won’t allow changing to the application version in the Client Update File (Anti-rollback)

Reserved for Future Use

0x08-0xFF

Reserved for future use

3.2.6.3.2 Response Examples

The following figure shows an example of the ABORT_FILE_TRANSFER response where no FileAbortCause is reported.

The following figure shows an example of the ABORT_FILE_TRANSFER response where the INVALID_FILE FileAbortCause is reported.