Proof of non-receipt of the file The condition of the problem and the statement of the problem: Alice pays Bob for the fact that he, at the request of users, gives out files of interest to users. For example, the user is interested in the file #hash1. The user learns from Alice that this file is stored by Bob. The user connects to Bob and asks to start downloading the file #hash1 to his computer. Then there are two possible bad outcomes. Either Bob is dishonest and refuses to transfer the file to the user, or the user is dishonest and, after receiving the file #hash1 from Bob, lies to Alice and tells her that Bob did not send him anything. 

My question is: are there any algorithms in cryptography that Alice will be able to determine the truth and not pay money to Bob (if he lies) or not stop cooperating with Bob (if the user lies)? At least partially. Thank you.

Personally, I thought that my problem relates to the topic of fair exchange (when the two sides exchange bit by bit interesting information and if one side begins to behave dishonestly, the second party immediately stops exchanging and the damage for it is minimal). However, this does not solve the problem that the user can simply lie and say that Bob did not send anything.
I just want to know if it's possible to control the work of a third-party server for Alice.
Some partial idea: You want to avoid a situation where the user receives the file and claims they didn't. 

Bob adds some random padding to the file so that the user doesn't know the size. Bob sends part of the data and waits for a receipt, then sends more data and waits for a receipt. When the file is sent completely, the user doesn't know this. So refusing to send the receipt means they might never get the complete file. When Bob claims the whole file has been received, the user contacts Alice, who has a key to unlock the file.