Known Issues

Cortana Skills Kit is currently in preview. This document lists known issues, and if available, workarounds and solutions.

Cortana skills only work when language is set to English (United States)

The public preview for Cortana is available for the U.S. English (en-US) market only.

Cortana stops talking after 15 seconds, or displays the message, "Unfortunately this skill won't work on this version of Windows"

Cortana in the Windows 10 Anniversary update (version 1607) limits speech to 15 seconds. This limit has been removed in the Windows 10 Creators update (version 1703). A workaround is to break your speech text into multiple responses. You can send multiple replies to a single user invocation, as long as the input hint of the first N-1 replies is IgnoringInput. The last reply must set the input hint to ExpectingInput (which automatically turns the microphone on), or AcceptingInput (which doesn't).

Long repetitive sentences without appropriate punctuation become garbled when spoken in the Windows 10 Creators Update (version 1703)

If you have long text that is repetitive, the speech output from Cortana may be garbled. For example:

This is a very long sentence this is a very long sentence this is a very long sentence this is a very long sentence this is a very long sentence this is a very long sentence this is a very long sentence this is a very long sentence this is a very long sentence this is a very long sentence this is a very long sentence this is a very long sentence.

Windows 10 Fall Creators Update (Version 1709) resolves this issue. To work around it, ensure your SSML contains proper punctuation, such as commas and periods.

When a skill is deployed to self or group, the privacy and terms of use links in the permission card don't work. The reason for this is that you are not required to specify these links until you publish your skill to world.

Spoken utterances sometimes have punctuation appended

Cortana will sometimes append punctuation, such as a period, to the end of a user's utterance. The speech recognition engine is capable of understanding multiple sentences in a single speech request. The engine may add a period to an utterance depending on how the utterance is spoken. Make sure that your language model is designed to handle this.

Unable to interrupt Cortana

Currently Cortana does not support user's interrupting her when she is speaking. She also ignores clicking on her canvas while she is speaking.

User email address not available on iOS and Android

Currently, the user's email address from the user's profile information is not available on iOS and Android.

Windows Phone does not support login

Currently, Cortana does not support logging into skills on Windows Phone. Log in using any other supported device first before using the skill on Windows Phone.

LuisDialog fails on skill launch

When Cortana launches a skill without an utterance (for example, "Open <invocation name>" or "Ask <invocation name>"), the activity.Text value is null. Passing the null text to LuisDialog throws an error. To work around this issue, override the MessageReceived method and add a null check as shown in the following example:

// V3
protected override async Task MessageReceived(IDialogContext context, IAwaitable<IMessageActivity> item)
{
    // Check for empty query
    var message = await item;
    if (string.isNullOrEmpty(message.Text))
    {
        // Return the Help/Welcome
        await Help(context, null);
    }
    else
    {
        await base.MessageReceived(context, item);
    }
}

For javascript, you can create a customer recognizer that maps an empty string to a help intent.

Bot created from the QnA (V3) template fails when invoked without an intent

When you create a QnA V3 bot from the template, an invocation without intent (for example, "Open MySkill") will cause the default BasicQnA dialog to do nothing. This results in Cortana timing out. This issue can be fixed using the code from LuisDialog fails on skill launch.

Also, the default behavior is not just single turn but single shot, which means the conversation is closed after the bot returns a result.

Skill invocation name is not recognized when changing between accounts

There's a bug in switching between Microsoft (personal) Accounts (MSAs) and Azure Active Directory (AAD) Accounts due to cached credentials. Invocation grammars are tied to the user identity. Some identity information is cached by Cortana's agent and doesn't get cleared when you switch between MSA and AAD accounts. This information is not cleared by rebooting if fast start is enabled.

Until this is fixed, there is a workaround.

  1. Start Microsoft Task Manager.

  2. Click on More details.
    Task Manager default

  3. Click the details tab.
    Task Manager default

  4. Find the SearchUI.exe process (which is the Cortana agent), click on it, and kill the process with the End task button.

The next invocation to Cortana will restart the agent with a clear identity cache, and load the correct grammars to recognize unique invocation names. Subsequent invocations to Cortana should work as expected.