Skip to content

Job ending with error 403 marked as successful #77

@pawsgineer

Description

@pawsgineer

Bug Report

Description

Trying to publish asset with wrong permissions.

Expected behavior

Step fails

Actual behavior

403 error in log, but step marked as successful

Environment

  • Action version: v10.3.1

Configuration

GitHub Actions Job Definition
      - name: Upload to GitHub Release Assets
        uses: python-semantic-release/publish-action@v10.3.1
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          tag: ${{ needs.release.outputs.tag }}
          verbosity: 2
Semantic Release Configuration

Execution Log

semantic-release -vv publish
2025-08-31T12:13:48.0967672Z            ERROR    error uploading asset paws_bakery-0.4.1.zip    github.py:473
2025-08-31T12:13:48.0968645Z                     ╭──── Traceback (most recent call last) ─────╮              
2025-08-31T12:13:48.0969347Z                     │ /opt/psr/.venv/lib/python3.13/site-package │              
2025-08-31T12:13:48.0970035Z                     │ s/semantic_release/hvcs/github.py:470 in   │              
2025-08-31T12:13:48.0970651Z                     │ upload_dists                               │              
2025-08-31T12:13:48.0971251Z                     │                                            │              
2025-08-31T12:13:48.0971794Z                     │   467 │   │   │   f for f in glob.glob(dis │              
2025-08-31T12:13:48.0972368Z                     │   468 │   │   ):                           │              
2025-08-31T12:13:48.0972901Z                     │   469 │   │   │   try:                     │              
2025-08-31T12:13:48.0973469Z                     │ ❱ 470 │   │   │   │   self.upload_release_ │              
2025-08-31T12:13:48.0974053Z                     │   471 │   │   │   │   n_succeeded += 1     │              
2025-08-31T12:13:48.0975165Z                     │   472 │   │   │   except HTTPError:  # noq │              
2025-08-31T12:13:48.0975905Z                     │   473 │   │   │   │   logger.exception("er │              
2025-08-31T12:13:48.0976553Z                     │                                            │              
2025-08-31T12:13:48.0977225Z                     │ /opt/psr/.venv/lib/python3.13/site-package │              
2025-08-31T12:13:48.0978034Z                     │ s/semantic_release/helpers.py:143 in       │              
2025-08-31T12:13:48.0978754Z                     │ _wrapper                                   │              
2025-08-31T12:13:48.0979367Z                     │                                            │              
2025-08-31T12:13:48.0979965Z                     │   140 │   │   │   )                        │              
2025-08-31T12:13:48.0980581Z                     │   141 │   │   │                            │              
2025-08-31T12:13:48.0981242Z                     │   142 │   │   │   # Call function          │              
2025-08-31T12:13:48.0981903Z                     │ ❱ 143 │   │   │   result = func(*args, **k │              
2025-08-31T12:13:48.0982557Z                     │   144 │   │   │                            │              
2025-08-31T12:13:48.0983203Z                     │   145 │   │   │   # Log result             │              
2025-08-31T12:13:48.0983883Z                     │   146 │   │   │   logger.debug("%s -> %s", │              
2025-08-31T12:13:48.0984550Z                     │                                            │              
2025-08-31T12:13:48.0985493Z                     │ /opt/psr/.venv/lib/python3.13/site-package │              
2025-08-31T12:13:48.0986282Z                     │ s/semantic_release/hvcs/github.py:429 in   │              
2025-08-31T12:13:48.0987051Z                     │ upload_release_asset                       │              
2025-08-31T12:13:48.0987716Z                     │                                            │              
2025-08-31T12:13:48.0988345Z                     │   426 │   │   )                            │              
2025-08-31T12:13:48.0988957Z                     │   427 │   │                                │              
2025-08-31T12:13:48.0989606Z                     │   428 │   │   with open(file, "rb") as dat │              
2025-08-31T12:13:48.0990550Z                     │ ❱ 429 │   │   │   response = self.session. │              
2025-08-31T12:13:48.0991223Z                     │   430 │   │   │   │   url,                 │              
2025-08-31T12:13:48.0992178Z                     │   431 │   │   │   │   params={"name": os.p │              
2025-08-31T12:13:48.0992727Z                     │   432 │   │   │   │   headers={            │              
2025-08-31T12:13:48.0993210Z                     │                                            │              
2025-08-31T12:13:48.0993837Z                     │ /opt/psr/.venv/lib/python3.13/site-package │              
2025-08-31T12:13:48.0994538Z                     │ s/requests/sessions.py:637 in post         │              
2025-08-31T12:13:48.0995326Z                     │                                            │              
2025-08-31T12:13:48.0995850Z                     │   634 │   │   :rtype: requests.Response    │              
2025-08-31T12:13:48.0996389Z                     │   635 │   │   """                          │              
2025-08-31T12:13:48.0996936Z                     │   636 │   │                                │              
2025-08-31T12:13:48.0997514Z                     │ ❱ 637 │   │   return self.request("POST",  │              
2025-08-31T12:13:48.0998090Z                     │   638 │                                    │              
2025-08-31T12:13:48.0998643Z                     │   639 │   def put(self, url, data=None, ** │              
2025-08-31T12:13:48.0999237Z                     │   640 │   │   r"""Sends a PUT request. Ret │              
2025-08-31T12:13:48.1000016Z                     │                                            │              
2025-08-31T12:13:48.1000688Z                     │ /opt/psr/.venv/lib/python3.13/site-package │              
2025-08-31T12:13:48.1001368Z                     │ s/requests/sessions.py:589 in request      │              
2025-08-31T12:13:48.1002011Z                     │                                            │              
2025-08-31T12:13:48.1002619Z                     │   586 │   │   │   "allow_redirects": allow │              
2025-08-31T12:13:48.1003231Z                     │   587 │   │   }                            │              
2025-08-31T12:13:48.1003753Z                     │   588 │   │   send_kwargs.update(settings) │              
2025-08-31T12:13:48.1004308Z                     │ ❱ 589 │   │   resp = self.send(prep, **sen │              
2025-08-31T12:13:48.1005042Z                     │   590 │   │                                │              
2025-08-31T12:13:48.1005560Z                     │   591 │   │   return resp                  │              
2025-08-31T12:13:48.1006079Z                     │   592                                      │              
2025-08-31T12:13:48.1006540Z                     │                                            │              
2025-08-31T12:13:48.1007080Z                     │ /opt/psr/.venv/lib/python3.13/site-package │              
2025-08-31T12:13:48.1007702Z                     │ s/requests/sessions.py:710 in send         │              
2025-08-31T12:13:48.1008259Z                     │                                            │              
2025-08-31T12:13:48.1008761Z                     │   707 │   │   r.elapsed = timedelta(second │              
2025-08-31T12:13:48.1009281Z                     │   708 │   │                                │              
2025-08-31T12:13:48.1009810Z                     │   709 │   │   # Response manipulation hook │              
2025-08-31T12:13:48.1010359Z                     │ ❱ 710 │   │   r = dispatch_hook("response" │              
2025-08-31T12:13:48.1010875Z                     │   711 │   │                                │              
2025-08-31T12:13:48.1011377Z                     │   712 │   │   # Persist cookies            │              
2025-08-31T12:13:48.1011904Z                     │   713 │   │   if r.history:                │              
2025-08-31T12:13:48.1012400Z                     │                                            │              
2025-08-31T12:13:48.1012931Z                     │ /opt/psr/.venv/lib/python3.13/site-package │              
2025-08-31T12:13:48.1013770Z                     │ s/requests/hooks.py:30 in dispatch_hook    │              
2025-08-31T12:13:48.1014300Z                     │                                            │              
2025-08-31T12:13:48.1014940Z                     │   27 │   │   if hasattr(hooks, "__call__") │              
2025-08-31T12:13:48.1015451Z                     │   28 │   │   │   hooks = [hooks]           │              
2025-08-31T12:13:48.1015965Z                     │   29 │   │   for hook in hooks:            │              
2025-08-31T12:13:48.1016485Z                     │ ❱ 30 │   │   │   _hook_data = hook(hook_da │              
2025-08-31T12:13:48.1016985Z                     │   31 │   │   │   if _hook_data is not None │              
2025-08-31T12:13:48.1017480Z                     │   32 │   │   │   │   hook_data = _hook_dat │              
2025-08-31T12:13:48.1017994Z                     │   33 │   return hook_data                  │              
2025-08-31T12:13:48.1018500Z                     │                                            │              
2025-08-31T12:13:48.1019029Z                     │ /opt/psr/.venv/lib/python3.13/site-package │              
2025-08-31T12:13:48.1019631Z                     │ s/semantic_release/hvcs/util.py:35 in      │              
2025-08-31T12:13:48.1020188Z                     │ <lambda>                                   │              
2025-08-31T12:13:48.1020669Z                     │                                            │              
2025-08-31T12:13:48.1021321Z                     │   32 │   """                               │              
2025-08-31T12:13:48.1021833Z                     │   33 │   session = Session()               │              
2025-08-31T12:13:48.1022360Z                     │   34 │   if raise_for_status:              │              
2025-08-31T12:13:48.1022907Z                     │ ❱ 35 │   │   session.hooks = {"response":  │              
2025-08-31T12:13:48.1023425Z                     │   36 │                                     │              
2025-08-31T12:13:48.1023911Z                     │   37 │   if retry:                         │              
2025-08-31T12:13:48.1024423Z                     │   38 │   │   if isinstance(retry, bool):   │              
2025-08-31T12:13:48.1025071Z                     │                                            │              
2025-08-31T12:13:48.1025613Z                     │ /opt/psr/.venv/lib/python3.13/site-package │              
2025-08-31T12:13:48.1026233Z                     │ s/requests/models.py:1026 in               │              
2025-08-31T12:13:48.1026807Z                     │ raise_for_status                           │              
2025-08-31T12:13:48.1027307Z                     │                                            │              
2025-08-31T12:13:48.1027800Z                     │   1023 │   │   │   )                       │              
2025-08-31T12:13:48.1028289Z                     │   1024 │   │                               │              
2025-08-31T12:13:48.1028814Z                     │   1025 │   │   if http_error_msg:          │              
2025-08-31T12:13:48.1029335Z                     │ ❱ 1026 │   │   │   raise HTTPError(http_er │              
2025-08-31T12:13:48.1029853Z                     │   1027 │                                   │              
2025-08-31T12:13:48.1030359Z                     │   1028 │   def close(self):                │              
2025-08-31T12:13:48.1030910Z                     │   1029 │   │   """Releases the connection  │              
2025-08-31T12:13:48.1031461Z                     ╰────────────────────────────────────────────╯              
2025-08-31T12:13:48.1031930Z                     HTTPError: 403 Client Error: Forbidden for                  
2025-08-31T12:13:48.1032399Z                     url:                                                        
2025-08-31T12:13:48.1032904Z                     https://uploads.github.com/repos/pawsgineer/b3              
2025-08-31T12:13:48.1033707Z                     d_paws_bakery/releases/243714625/assets?name=p              
2025-08-31T12:13:48.1034270Z                     aws_bakery-0.4.1.zip                                        
2025-08-31T12:13:48.1035069Z [12:13:48] DEBUG    Github.upload_dists -> 0                      helpers.py:146

Additional context

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingstale

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions