# Keeper Gateway v1.2.3

## Improvements & Bug Fixes

* #### Update Windows Service to Run Keeper Gateway CLI in Background Thread and Actions in a Process Pool
  * Implemented queues and loggers for the CLI thread to streamline operations.
  * Added an optional output to queue for the CLI thread, increasing flexibility.
  * Made modifications to stop messages and prompt command updates.
  * Introduced the CLI thread runner for better management of operations.
  * Enabled the Windows service to use the CLI thread runner, providing better integration and functionality.
  * Adjusted the system to use the Windows service thread for PyInstaller, enhancing compatibility.
  * Integrated the use of a process pool executor for gateway actions to improve performance and responsiveness.
  * Enabled Keeper Gateway command line and service to use a single binary, simplifying the system and reducing potential issues
* **Improved Error Messages**&#x20;
  * Prevented display of raw exception messages by creating a global method to handle exceptions for AWS & Azure
  * For databases, a global exception handler was created and refined to handle different database engines
  * Updated the "retype" prompts to be less specific to account for differences based on Linux OS versions or the service the password is being changed within
  * Exception messages for Linux/macOS password interaction were modified.&#x20;


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.keeper.io/release-notes/enterprise/keeper-gateway/older/keeper-gateway-v1.2.3.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
