Today I ran into the issue described on this Veeam Community Forum post. Under specific circumstances, Veeam inadvertently marks a legitimate tape as a cleaning tape, removing it entirely from view in VBR console. There's no user-accessible way to remove it from the catalog, nor does erasing, re-scanning, or inventorying the tape have any effect.
Symptoms:
You will see the following entries in your logs:
:: TapeDrive alert: The tape drive is due for routine cleaning:. Wait for the current operation to finish. Then use a cleaning cartridge. Check the tape drive user manual for device specific cleaning instructions.
:: TapeDrive alert: The last cleaning cartridge used in the tape drive has worn out:. Discard the worn out cleaning cartridge. Wait for the current operation to finish. Then use a new cleaning cartridge.
:: Marking tape <TapeName> as a cleaning cartridge
And you will notice a slot in your tape library has magically disappeared. The missing slot will correspond with the location of the tape Veeam believes is a cleaning cartridge.
This appears to happen when there is an automatic cleaning process and the specified cleaning tape has expired. The next tape that enters the drive seems to get marked as a cleaning tape. There may be other scenarios that cause this, but the solution remains the same.
Please note that this is intended as an emergency fix only. Modifying the Veeam database on your own is not a supported action. While this worked just fine for me, this may break your installation. Veeam support may not be able/willing to assist.
Open SQL Server Management Studio and connect to the Veeam database. You will need the server name & instance name. You may also need to enable TCP/IP for the instance in order to connect from a remote system, as it is not always enabled by default. This is outside the scope of this Q/A.
To get a list of media marked as cleaning tapes, issue the following SQL statement:
This should give you results similar to the following. Note the first tape listed is an actual cleaning tape, and follows the naming convention specified by the LTO specification for a universal cleaning cartridge. The second result is our missing tape.
Now we just have fix this. A simple update to the cleaner property is all that's needed. You can use any property to select the appropriate tape; I used barcode since I know they're all unique in my environment.
And voilà, your tape is once again visible! The change should take effect almost immediately in the VBR console.