I'm trying to deploy to Elastic Beanstalk, specifically using CircleCI, and I ran into this error:
ERROR: UndefinedModelAttributeError - "serviceId" not defined in the metadata of the model: <botocore.model.ServiceModel object at 0x7fdc908efc10>
From my Google search, I see that it's a Python error which makes sense because that's what Elastic Beanstalk uses. But there is no information out there for this specific case. Does anyone know why this happens?
EBCLI 3.14.6 is compatible with the current latest AWS CLI (> 1.16.10).
To solve this issue:
Upgrade awsebcli to 3.14.5: Upgrade awsebcli to 3.14.6
pip install awsebcli --upgrade
If you must continue using awsebcli < 3.14.5, perform:
pip install 'botocore<1.12'
The core of the problem is the open dependency range on
botocore that awsebcli < 3.14.5 allowed so that users can always have access to the latest AWS CLI commands/AWS APIs (
botocore manages AWS service models).
botocore released version 1.12, it created an incompatibility in the EBCLI. EBCLI 3.14.5 restricts the dependency on
botocore to < 1.12.
EDIT: As an aside, note that EBCLI 3.14.5 is incompatible with AWS CLI 1.16.10. Instead, use AWS CLI 1.16.9.