10

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?

Martavis P.
  • 1,708
  • 2
  • 27
  • 45
  • 1
    I know this doesn't help, but I'm getting this as well. Starting a couple days ago. The worst part is it's returning a '0' as the error code so our builds have been broken but we thought they were working. – gfree Sep 08 '18 at 21:26
  • same here :( I'll post an answer if I figure something out – ermish Sep 09 '18 at 02:28
  • 1
    I can second that since today. Seems like aws-cli got an update. On CI (Bitbucket Pipelines) I got: aws-cli/1.16.10 Python/2.7.13 Linux/4.14.63-coreos botocore/1.12.0 (throwing the error) Locally I have: aws-cli/1.15.59 Python/3.6.4 Darwin/17.7.0 botocore/1.10.58 (working) – Gregor Sep 09 '18 at 16:13

2 Answers2

14

Update

EBCLI 3.14.6 is compatible with the current latest AWS CLI (> 1.16.10).


Previously ...

To solve this issue:

  1. Upgrade awsebcli to 3.14.5: Upgrade awsebcli to 3.14.6

    pip install awsebcli --upgrade
    

OR

  1. 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).

When 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.

progfan
  • 2,454
  • 3
  • 22
  • 28
2

I just had the same error after installing awscli after awsebcli. The botocore dependencies are not matching. So if you want to use awsebcli commands make sure to not overwrite its dependencies:

  1. Either downgrade awscli
  2. Or install it before awsebcli (works for the my usecase but might randomly break)
Karens
  • 613
  • 5
  • 18