Symptoms
An Office 365 subscription APS 1.2 to APS 2.0 upgrade fails with the output below:
# python upgradeAPS1ToAPS2.py --nb-processes 1 --o365APS1-app-id 107 --o365APS2-app-instance-id 178 --subscriptions 1000050 --target-plan-id 345 --billing-system pba --resource-mapping ResourceRateMappings.json --gateway-url https://mosigw.example.com/Office365_1/HTTPEndpoint.aspx
...
Subscription #1000050: Offer limits don't match. APS1 offer limits: {'ff44f98d-3b1f-4250-ab63-8ab1e6f15055': 7, 'b86aa4c7-5c7e-445b-8c97-227dbde5787f': 1, '97b27d34-a29d-4a68-b35f-3a34911a765a': 20}; APS2 offer limits: {'ff44f98d-3b1f-4250-ab63-8ab1e6f15055': 7, 'b86aa4c7-5c7e-445b-8c97-227dbde5787f': 21}
The subscription has the following offer limits:
Offer name | Provisioning ID | Offer ID | Limit |
Office 365 Small Business | LITEPACK | b86aa4c7-5c7e-445b-8c97-227dbde5787f | 1 |
Office 365 Small Business Premium | LITEPACK_P2 | ff44f98d-3b1f-4250-ab63-8ab1e6f15055 | 7 |
SharePoint Online Storage for Premium Small Business AKA Office 365 Extra File Storage for Small Business | SHAREPOINTSTORAGE | 97b27d34-a29d-4a68-b35f-3a34911a765a | 20 |
Cause
One of resource types is mapped incorrectly in ResourceRateMappings.json:
...
{
"mappedTo": 1104,
"poaRTs": [
1000353
],
"rtId": 1000353,
"rrId": 229
},
{
"mappedTo": 1104,
"poaRTs": [
1000171
],
"rtId": 1000171,
"rrId": 108
},
...
In the example above the resource type #1000353
SharePoint Online Storage for Premium Small Business is mapped to the resource rate #1104
NEW: Office 365 Small Business. At the same time resource type ID #1000171
Office 365 Small Business is mapped to #1104
too, therefore total license number is:
20 (#1000353
) + 1 (#1000171
) = 21 (#1104
NEW: Office 365 Small Business)
The example below illustrates Office 365 resources included to the current service template and target service plan:
Resource types of the service template #5 NEW Office 365 Small Business:
RT ID Name Provisioning ID
### APS 1.2
1000171 Office 365 Small Business LITEPACK
1000177 Office 365 Small Business Premium LITEPACK_P2
1000353 SharePoint Online Storage for Premium Small Business SHAREPOINTSTORAGE
### APS 2.0
1001388 NEW: Office 365 Small Business LITEPACK
1001362 NEW: Office 365 Small Business Premium LITEPACK_P2
1001425 NEW: Office 365 Extra File Storage for Small Business SHAREPOINTSTORAGE
Resource rate IDs of the service plan #9 NEW Office 365 Small Business:
### APS 1.2
108 Office 365 Small Business
110 Office 365 Small Business Premium
229 SharePoint Online Storage for Premium Small Business
### APS 2.0
1104 NEW: Office 365 Small Business
1105 NEW: Office 365 Small Business Premium
1527 NEW: Office 365 Extra File Storage for Small Business
Resolution
To fix the issue the following part of JSON has to be changed:
{
"mappedTo": 1104, <------------
"poaRTs": [
1000353
],
"rtId": 1000353,
"rrId": 229
},
to:
{
"mappedTo": 1527, <--------------
"poaRTs": [
1000353
],
"rtId": 1000353,
"rrId": 229
},
and restart the script.