Bug 13227 - MT9023: Invalid license
Summary: MT9023: Invalid license
Alias: None
Product: Xamarin Studio
Classification: Desktop
Component: Activation ()
Version: 4.0.9
Hardware: PC Mac OS
: --- normal
Target Milestone: 4.0.9 (from master)
Assignee: Mikayla Hutchinson [MSFT]
Depends on:
Reported: 2013-07-13 12:43 UTC by Allie Miller
Modified: 2013-11-15 15:06 UTC (History)
4 users (show)

Is this bug a regression?: ---
Last known good build:

Notice (2018-05-24): bugzilla.xamarin.com is now in read-only mode.

Please join us on Visual Studio Developer Community and in the Xamarin and Mono organizations on GitHub to continue tracking issues. Bugzilla will remain available for reference in read-only mode. We will continue to work on open Bugzilla bugs, copy them to the new locations as needed for follow-up, and add the new items under Related Links.

Our sincere thanks to everyone who has contributed on this bug tracker over the years. Thanks also for your understanding as we make these adjustments and improvements for the future.

Please create a new report on Developer Community or GitHub with your current version information, steps to reproduce, and relevant error messages or log files if you are hitting an issue that looks similar to this resolved bug and you do not yet see a matching new report.

Related Links:

Comment 2 Rolf Bjarne Kvinge [MSFT] 2013-07-18 13:51:31 UTC
Allie: If the error code is different the issue is different (in some cases we're deliberately vague in the error messages, and the only thing differentiating different conditions is the error code, and 9021/9023 is one such case).

MT9023 will happen if the user has a license that expired before the xamarin 2.0 release. However mtouch will not refuse to fetch a new (and valid) license if this condition occur, so the bug is likely elsewhere. Maybe Xamarin Studio doesn't know what to do with MT9023?
Comment 3 PJ 2013-07-18 16:47:01 UTC
So the key here is what you mean by 'had an expired license'.

If they're in the EXPIRED state and they try to use the updater, they'll get https://bugzilla.xamarin.com/show_bug.cgi?id=12810

Users, however, should not be getting into the EXPIRED state on their own (just going past the subscription end date of the license does not get you into this state). The key thing to determine for these cases is how the hell they got into the EXPIRED / INVALID state. 

There's one such hole which is discussed in bug 12810, comment 3, where people switching workstations actively can get into an INVALID state. For them, building any project should re-activate with the correct license.

It's also possible as Rolf suggests, that there a hole in the behavior for users with a different ProductID on the license. This apparently is causing 9023 errors instead of 9018. XS may only handle the MT9018 version of the invalid error. If that's the case, I have to ask - why are there separate invalid license error codes?

> The resolution for this message is to remove the previous license file and complete an offline activation to re-activate the workstation.

This should be considered a last resort for any support issue - this will fix almost any activation problem. We need to get more information about the licenses and builds being used to determine the root of the problem here. A potential form response for activation issues should ask for the actual license files on disk, the full version information from the IDE, and the possibly the outputs of --entitlements, etc. 

Perhaps we can put together a script to gather this information from user's machines? I think it would help diagnose if all or many of these issues came with that information.

So yeah - convoluted issue to begin with, and I'm not sure of the exact conditions/actions reported here. Setting to NEEDINFO, happy to talk through this on IRC as well!
Comment 4 Rolf Bjarne Kvinge [MSFT] 2013-07-18 19:32:43 UTC
> So the key here is what you mean by 'had an expired license'.

Thinking a bit more about it an 'expired license' in this particular case means a really old license file (from around MonoTouch 5.2 or earlier I believe).

The check that fails is a PRODUCT_VERSION check, which was the old way of forcing users to update their MonoTouch. This check was enforced/checked during install, so it was not possible to install unless you had a license file with the correct PRODUCT_VERSION.

Then came Xamarin Studio 2.0 and we don't check anything at install time anymore (note that this is not the 'XS won't show updates' scenario, it's a 'first-time XS 2.0 install' scenario).

So a test case would be something like:
* Install and activate MonoTouch 5.0 (using an activation code with a PRODUCT_VERSION < 6).
* Install Xamarin Studio 2.0.

> If that's the case, I have to ask - why are there separate
> invalid license error codes?

There are several conditions under which a license may be deemed invalid. Different error codes points to different locations in our source code (each source code location reports a different error code), making debugging them a lot easier.
Comment 5 Mikayla Hutchinson [MSFT] 2013-11-15 15:06:19 UTC
This should be fixed by license sync.