> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wandb.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Limites et comportements attendus

> Une liste des limites de Weave, des problèmes connus et des comportements attendus

Cette page répertorie les limites de Weave, les problèmes connus et les comportements attendus. Utilisez-la comme référence lorsque vous obtenez des résultats inattendus ou souhaitez comprendre comment Weave gère les cas limites.

* Pour les requêtes susceptibles d’être retentées, Weave réessaie à partir d’1 seconde après la première erreur, puis double le délai entre les tentatives jusqu’à 5 minutes. Les requêtes expirent après 36 heures.

* Au lieu de lever des exceptions, [`.call()`](/fr/weave/guides/tracking/tracing#creating-calls) capture les exceptions et les stocke dans `call.exception`. Si vous devez lever des exceptions pendant l’exécution, définissez le [`paramètre __should_raise`](/fr/weave/reference/python-sdk/trace/op#function-call), comme ceci :

  ```python showLineNumbers theme={null}
  # Ceci lève des exceptions
  result, call = foo.call(__should_raise=True)
  ```

* Les instances Dedicated Weave utilisent une URL d’ingress OpenTelemetry différente. Pour plus d’informations sur les points de terminaison officiels, voir [Envoyer des traces OpenTelemetry](/fr/weave/guides/tracking/otel).

* Weave tronque parfois les objets de données de trace volumineux. Cela se produit parce que la sortie de trace par défaut est un objet Python personnalisé brut que Weave ne peut pas sérialiser automatiquement. Pour renvoyer toutes vos données de trace, définissez un dictionnaire de chaînes, comme ceci :

  ```python theme={null}
  import weave

  class MyObj:
      """An object with a large string attribute."""
      def __init__(self, x: int):
          self.x = x

      def __repr__(self):
          return f"MyObj(x={self.x})"

      def to_dict(self):
          return {"x": self.x}

  @weave.op()
  def make_my_obj():
      x = "a" * 10_000
      return MyObj(x)

  def main():
      weave.init("<entity/project>")

      # Définir une opération traçable qui traite MyObj
      @weave.op()
      def process_obj(obj: MyObj) -> int:
          return len(obj.x)

      # Créer et traiter une grande instance de MyObj
      large_obj = make_my_obj()
      length = process_obj(large_obj)
      print(f"Length of x in MyObj: {length}")
      print("dict:", large_obj.to_dict())

  if __name__ == "__main__":
      main()
  ```
