microsoft / MicrosoftEdge-Extensions

This is a community space for Microsoft Edge Add-ons developers, to share resources and information about building, publishing and growing their Microsoft Edge extension.
MIT License
141 stars 128 forks source link

502 Server Error when uploading extension to store #153

Closed dbeilin closed 3 months ago

dbeilin commented 4 months ago

I'm trying to upload my extension to the Edge store by I get a 502 error. This is my script:

import os
import logging
import requests
from dotenv import load_dotenv

load_dotenv()

logging.basicConfig(
    format="%(asctime)s - %(levelname)s: %(message)s",
    datefmt="%Y/%m/%d %H:%M:%S",
    level=logging.INFO,
)

def fetch_access_token(client_id, client_secret, access_token_url):
    headers = {"Content-Type": "application/x-www-form-urlencoded"}
    data = {
        "client_id": client_id,
        "client_secret": client_secret,
        "grant_type": "client_credentials",
        "scope": "https://api.addons.microsoftedge.microsoft.com/.default",
    }

    response = requests.post(access_token_url, headers=headers, data=data, timeout=20)
    response.raise_for_status()
    token_data = response.json()

    return token_data["access_token"]

def upload_extension(token, api_endpoint, product_id, package_path):
    url = f"{api_endpoint}/v1/products/{product_id}/submissions/draft/package"
    headers = {
        "Authorization": f"Bearer {token}",
        "Content-Type": "application/zip",
    }

    with open(package_path, "rb") as package_file:
        data = package_file.read()
        response = requests.post(url, headers=headers, data=data, timeout=120)
        logging.info("response: %s", response)
    response.raise_for_status()

    operation_id = response.headers.get("Location")
    logging.info(
        "Package uploaded successfully with the operation ID: %s", operation_id
    )

if __name__ == "__main__":
    edge_product_id = os.getenv("EDGE_PRODUCT_ID")
    edge_client_id = os.getenv("EDGE_CLIENT_ID")
    edge_client_secret = os.getenv("EDGE_CLIENT_SECRET")
    edge_access_token_url = os.getenv("EDGE_ACCESS_TOKEN_URL")
    edge_api_endpoint = "https://api.addons.microsoftedge.microsoft.com"

    access_token = fetch_access_token(edge_client_id, edge_client_secret, edge_access_token_url)
    upload_extension(access_token, edge_api_endpoint, edge_product_id, "extension/ext.zip")

This exact script worked a few weeks ago when I last tried it, it worked for a long time but all of the sudden I started getting server errors. I waited over 24 hours thinking it was a temporary issue, but now it seems like my extension is "blocked".

What could be the issue? I tried:

Generating the access token works, it's just the upload itself which is failing:

❯ python extension/main.py
2024/05/21 16:16:42 - INFO: response: <Response [502]>
Traceback (most recent call last):
  File "/Users/beilin/orangutan/extension/main.py", line 56, in <module>
    upload_extension(access_token, edge_api_endpoint, edge_product_id, "extension/ext.zip")
  File "/Users/beilin/orangutan/extension/main.py", line 40, in upload_extension
    response.raise_for_status()
  File "/Users/beilin/.pyenv/versions/3.12.1/envs/playground/lib/python3.12/site-packages/requests/models.py", line 1021, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 502 Server Error: Bad Gateway for url: https://api.addons.microsoftedge.microsoft.com/v1/products/my-extension-id/submissions/draft/package

If you fill out the env vars in the main function, you should be able to run this script as well. Please assist.

danielhjacobs commented 4 months ago

Ah, I've been getting something similar. See https://github.com/microsoft/MicrosoftEdge-Extensions/discussions/154

MaximeHeckel commented 4 months ago

Same issue on my end, still seeing 503/502 errors, it's been 3 days

wsxarcher commented 4 months ago

Should be fixed now.

prithamkasiMSFT commented 4 months ago

Hi Everyone,

I'm Pritham Kasi from Edge Extensions team!

If you're still facing the issue, please reach out to us @ ext_dev_support@microsoft.com with the problem you're facing along with your Seller ID and extension details and we will try to help as soon as possible.