Customers generally at least begrudgingly understand if you can’t reproduce a bug, especially if you have worked with them and made very visible attempts. What it usually takes to close such bugs is some sort of mitigation.
If it happens again, have you put something in place that will prevent data loss, give you more info to be able to track it down, etc. Have you fixed any compiler or linter warnings in that area of the code? Have you beefed up your test coverage, ideally even writing a specific test for that specific failure? Have you eliminated usual suspects like concurrency issues and null pointers? Have you added gratuitous checks for “impossible” states?
Put that in the bug report and give them confidence that you have reduced the impact even if you haven’t eliminated it.