# How to Diagnose ReadKeys issues

If ReadKeys does not return any data although you successfully activated a license, follow the troubleshooting steps below to diagnose the issue.

### Configuration Issues

ReadKeys and StoreKeys work in tandem. The options that are used when calling StoreKeys must be identical to the ones used when calling ReadKeys.

* If you activate a license via the QLM License Wizard standalone app and ReadKeys fails in your code.
  * If you are using the LicenseValidator class, make sure that the arguments to DefineProduct and the PublicKey property match the values associated to your product in the Define Products tab. This is a list of properties that must match:
    * Product ID
    * Major Version
    * Minor Version
    * GUID (persistence key)
    * PublicKey
    * LicenseType
    * CommunicationEncryptionKey
    * WebServiceUrl
    * StoreKeysLocation
    * StoreKeysOptions
  * The QlmLicenseWizard.exe takes as arguments a settings XML file that contains details about your product. Make sure that your xml file is up-to-date. If in doubt, regenerate the settings xml file from the "Protect Your application" wizard (3rd tab).

### Permission Issues

Another potential issue is permissions to write information to the end-user system. Depending on the selected options ([StoreKeysLocation ](/docs/api-reference/.net-api/qlmlicense/properties/storekeyslocation.md)and [StoreKeysOptions](/docs/api-reference/.net-api/qlmlicense/properties/storekeysoptions.md)), a user might need permissions to write license information to the registry or the file system.

The [StoreKeysEx ](/docs/api-reference/.net-api/qlmlicense/client-side-methods/storekeysex.md)API writes license information to the end user system. Your application might be calling the StoreKeysEx API directly, or if you use the QLM License Wizard to activate a license, the StoreKeysEx API is called by the wizard with the options configured in the XML Settings file. For more information about the permissions required for each setting, we recommend reviewing the following articles:

* [StoreKeysLocation ](https://docs.soraco.co/docs/api-reference/.net-api/qlmlicense/properties/storekeyslocation)property
* [StoreKeysOptions](https://docs.soraco.co/docs/api-reference/.net-api/qlmlicense/properties/storekeysoptions) property
* [StoreKeysEx API](https://docs.soraco.co/docs/api-reference/.net-api/qlmlicense/client-side-methods/storekeysex)


---

# 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.soraco.co/docs/troubleshooting/how-to-diagnose-readkeys-issues.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.
