Programming language used to interact with SQL Server databases
In the SQL Server world there is this concept of "prepared statements" which is used by some applications. You could say that it is a temporary stored procedure. That is, the client first calls sp_prepare to store the statement in SQL Server's memory (nothing is stored on disk). This procedure returns a handle. The client later calls sp_prepexec to actually run the query, using the handle it got back. The client can make multiple calls to sp_prepexec for the same handle, typically passing different parameters. Once the client is finished, it calls sp_unprepare to release the statement.
Error 8179 suggests that the application is passing a handle that it just has made up. Or it passing a handle after having called sp_prepexec. Another possibility is that the database is in an Availability Group and there is a failover. After the failover, all handles for prepared statements are invalid. A good application should check for this condition and have good retry logic.
However, it seems from your description that this error appears in a specific function in Navision. Thus, it does not sound like a failover problem, but rather a bug in Navision. Or for that matter a bug in SQL Server, although I would deem that as less likely.
I think it is difficult for us in this forum to troubleshoot this error, but you would need to open a support case with Microsoft, primarily then with the Navision team. If the Navision team think that SQL Server is at fault, they should talk to the SQL Server people internally, I like to think. (Yes, I see that you say that you have no channel. I'm afraid that without a support contract, it will be difficult to get this resolved.)