SlackApiError cannot be unpickled
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 45/100
Piste de recherche
Commencez par la définition de SlackApiError et exécutez sous Python 3.11 la reproduction avec pickle présentée dans l’issue. Vérifiez comment l’exception est initialisée et représentée, puis vérifiez que la sérialisation et la désérialisation avec pickle préservent le message et la réponse sans lever de TypeError.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
SlackApiError raises an error when trying to unpickle it.
This is particularly annoying in a Celery task since another bug in celery will cause the whole worker node to fail.
The Slack SDK version
2.9.4
Python runtime version
3.11.0
OS info
ProductName: macOS
ProductVersion: 13.0
BuildVersion: 22A380
Darwin Kernel Version 22.1.0: Sun Oct 9 20:15:09 PDT 2022; root:xnu-8792.41.9~2/RELEASE_ARM64_T6000
Steps to reproduce:
import pickle
from slack.errors import SlackApiError
e = SlackApiError("Internal server error", "<response>")
dumped = pickle.dumps(e)
pickle.loads(dumped)
Expected result:
No error.
Actual result:
Traceback (most recent call last):
File "/private/tmp/pickle_exc/bug.py", line 7, in <module>
pickle.loads(dumped)
TypeError: SlackApiError.__init__() missing 1 required positional argument: 'response'
Solution
The SlackApiError could be implemented in such a way that the constructor accepts only the message, and the response defaults to None. Then the string representation can be delegated to __str__:
class SlackApiError(Exception):
def __init__(self, message, response=None):
super().__init__(message)
self.response = response
def __str__(self):
return f"{self.args[0]}\nThe server responded with: {self.response}"
- Langage dominant
- Python
- Étoiles
- 4k
- Forks
- 857
- Merge moyen
- 1 j 5 h
- PR mergées (30 j)
- 17
Préparer son environnement
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de slackapi/python-slack-sdk
-
needs info server-side-issue
Difficulté 4/5 3-5 jours Accessibilité débutants 35/100
slackapi/python-slack-sdk#1961 · 3 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
auto-triage-skip discussion
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 35/100
slackapi/python-slack-sdk#1940 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
chat_postMessage silently forwards thread_id to the API, so a threaded reply posts to the channelOuverteauto-triage-skip enhancement
Difficulté 4/5 3-5 jours Accessibilité débutants 48/100
slackapi/python-slack-sdk#1923 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
auto-triage-skip bug python web-client
Difficulté 3/5 1-2 jours Accessibilité débutants 52/100
slackapi/python-slack-sdk#1853 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
auto-triage-skip bug server-side-issue
Difficulté 3/5 1-2 jours Accessibilité débutants 68/100
slackapi/python-slack-sdk#1847 · 5 commentaires ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de slackapi/python-slack-sdk
Issues similaires
-
[Bug] @deck.gl/arcgis dist import resolves to unpublished @deck.gl/core source path (9.3.11, 9.4.0)Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 1 jour
-
workflow: a tick's dispatch counts as 'only this step', and no review self-grants a round unattendedOuverteworkflow
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
kristofdegrave/homeassistant-smart-charging#1505 ·
Les mainteneurs répondent en général sous 1 jour
-
New Submission: TropWATEROuvertemetadata submission
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
-
Wrongly named dashboard variableOuvertebug
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
canonical/content-cache-operator#163 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
[submission]Ouvertesubmission
Difficulté 1/5 Moins d'une heure Accessibilité débutants 65/100
leanprover/lean-eval-submissions#1852 ·
Les mainteneurs répondent en général sous 1 jour