Examples: query, "exact match", wildcard*, wild?ard, wild*rd
Fuzzy search: cake~ (finds cakes, bake)
Term boost: "red velvet"^4, chocolate^2
Field grouping: tags:(+work -"fun-stuff")
Escaping: Escape characters +-&|!(){}[]^"~*?:\ with \, e.g. \+
Range search: properties.timestamp:[1587729413488 TO *] (inclusive), properties.title:{A TO Z}(excluding A and Z)
Combinations: chocolate AND vanilla, chocolate OR vanilla, (chocolate OR vanilla) NOT "vanilla pudding"
Field search: properties.title:"The Title" AND text
Beantwortet
Error beim Abschicken eines Startschrittes: "Exception Rollback: str_replace(): Argument #2 ($replace) must be of type array|string, null given"

Hallo zusammen,

wie im Titel zu lesen, geht es um einen Fehler, den wir uns nicht wirklich erklären können. Wir haben seit neustem, um genau zu sein seit dem 18.04.2023 um 17:13:22, einen Fehler in einem unserer JobRouter-Prozesse. Und zwar ist es für nur einen User nicht möglich, den Startschritt abzuschicken. Dieser User hat jedoch in der Vergangenheit schon mehrmals diesen Prozess erfolgreich verwenden können. Andere Prozesse die wir testeten funktionieren soweit ohne Problem bei diesem User.

Zum Zeitpunkt des Fehlers sei auch gesagt, dass wir genau an diesem Tag, ca. 17 Minuten später (zumindest so in der Planung, ob dieser früher gestartet wurden ist oder ob Vorbereitungen für das Update getroffen wurden sind, ist uns unbekannt) ein JobRouter-Update (auf 2023.1.1) vorgenommen haben. Ob es daher an dem Update liegt, können wir nicht genau sagen und gehen erstmal nicht davon aus, dass es etwas damit zu tun haben könnte.

Die Regeln unserers Startschrittes sind nicht wirklich kompliziert aufgebaut. Wir haben lediglich Weiterleitungen und Ausführungsschritte (E-Mails, die in bestimmten Fällen verschickt werden). Da es sich hierbei um einen PHP-Error handelt, kann ich schon mal vorweg nehmen, dass wir im Startschritt (darunter auch in den Regeln des Startschrittes) keine selbst erstellten PHP-Funktionen aufrufen. In der Entwicklerkonsole des Browsers finden wir keine Fehlermeldungen und können auch nicht davon ausgehen, dass hier etwas mit JavaScript zu tun hat.

Desweiteren haben wir auch versucht, die fehlerhaften Schritte an andere User zuzuweisen, um dann mit diesen den Dialog selbst abzuschicken. Der Fehler tauchte zwar im ersten Versuch ebenfalls auf, aber nach dem wir kleinere Anpassungen an den Regeln und andere Werte in den Dialogen vorgenommen haben, funktionierte das Absenden des Dialogs. Beim Zurücksetzen der Dialog-Daten ist jedoch aufgefallen, dass es auch dann wieder funktionierte. Auch die Regeln die wir angepasst hatten, haben wir zurück in ihren Ursprung gesetzt, um zu schauen, ob der Fehler möglicherweise hier vorliegt. Jedoch funktionierte auch danach noch das Abschicken des Dialoges mit anderen Usern, obwohl diese zu Beginn auch nicht funktionierten und den gleichen Fehler warfen.

Was uns ebenfalls aufgefallen ist, aber uns unsicher ist, ob es was mit dem eigentlichen Fehler zu tun hat, dass wenn man den Schritt sichert, nach dem der Fehler aufgetreten ist, werden alle Werte in den Untertabellen entfernt, obwohl diese noch vor dem Sichern vorhanden gewesen waren. Die Daten der Untertabellen befinden sich dann auch nicht mehr in der Prozesstabelle in der Schrittübersicht.

Hierzu noch ein Bild der Fehlermeldung, auch wenn es nicht wirklich Mehrwert liefert:
file

Hättet Ihr eine Idee, was das Problem sein könnte oder was man noch ausprobieren sollte, um den Fehler besser zu identifizieren?

Danke im Voraus und viele Grüße, Bayram C.

  
  
Gepostet vor einem Jahr
Stimmen Neuste

Antworten 2


Das klingt schwer nach PHP. Gibt es in den Funktionen, die ausgeführt werden? Oder vielleicht im Schritt?
Mein erster Schritt wäre es, im Editor für die PHP Funktionen einmal nach "str_replace" zu suchen, um zu sehen, wo es aufgerufen wird.

file

  
  
Gepostet vor einem Jahr
  
  

Wir verwenden in dem Fall gar keine PHP-Skripte. Diese werden daher auch nicht ausgeführt und sollte auch keine Relevanz hierzu haben. Aber um dennoch darauf einmal einzugehen: Wir verwenden die PHP-Funktion str_replace nicht bei uns im Skript.

Bayram C.   vor einem Jahr Melden
  
  

Wenn es nur bei einem der Benutzer ist, ist die Frage, was dort anders ist. Gibt es Felder im Benutzer, die bei ihm nicht gefüllt sind, aber bei anderen Benutzern, die den Schritt absenden können, einen Wert haben?
Gibt es Regeln, die ausgeführt werden?

Daniel Winkels   vor einem Jahr Melden
  
  

Der Test-User hat den Fehlerhaften-Schritt zugewiesen bekommen. Daher sind alle Daten gleich bzw. die Dialogfleder haben die gleichen Werte. Die User unterscheiden sich nur in Ihren Grunddaten, also Username, Mail, etc.

Bayram C.   vor einem Jahr Melden

Wir haben das Problem gefunden. Es liegt an den gepflegten Sprachen im Prozess und den Benachrichtigungen die man in den Schritten aktiviert hat.

Also wir haben nochmal mit einem Testprozess getestet und wir haben jetzt die Quelle gefunden, aber noch keine Lösung:

  • der Fehler passiert UNABHÄNGIG vom Prozess und vom Bearbeiter, ist also ein GLOBALES Problem
  • der Fehler tritt dann auf, wenn Benachrichtigungen für den Folgeschritt aktiviert sind und der Ziel-User eine andere Sprache als Deutsch ausgewählt hat im Benutzerkonto
  • der Fehler tritt auch nur dann auf, wenn die Sprache vom User im Prozess hinterlegt und aktiv geschaltet ist (außer Deutsch)
  • die Einstellung für die Standardsprache im Prozess hat keinen Einfluss auf diesen Fehler

Schaut eher aus wie ein interner Bug im JobRouter, der nicht wirklich was mit uns zu tun hat. Wir beobachten das aber weiterhin.

  
  
Gepostet vor einem Jahr
1
1

Hi Bayram, das sieht in der Tat nach einem internen Bug aus. Da solltest du ein Bug-Ticket im JR-Portal aufmachen, damit die Bescheid wissen und das fixen können. Ist ja keine Kleinigkeit.
VG
Jan

Jan Zimmerbeutel   vor einem Jahr Melden
3K Ansichten
2 Antworten
vor einem Jahr
vor einem Jahr
Stichwörter