Wprowadzenie
Błąd Odoo RPC Error pojawia się, gdy komunikacja między przeglądarką (lub zewnętrznym systemem) a serwerem Odoo natrafia na wyjątek. RPC to skrót od Remote Procedure Call — mechanizmu, który pozwala wywoływać operacje po stronie serwera z poziomu interfejsu WWW lub integracji zewnętrznych.
Taki błąd zwykle objawia się jako:
RPC_ERROR
Odoo Server Error
Albo widoczny w konsoli przeglądarki jako:
RPC_ERROR: Odoo Server Error
W odróżnieniu od zwykłych walidacji w UI, błędy RPC mają źródło po stronie backendu — to serwer zgłasza wyjątek, który trafia do klienta.
Ten przewodnik wyjaśnia, czym jest błąd RPC, skąd się bierze i jak go skutecznie usunąć.
Co to jest błąd RPC w Odoo?
W Odoo większość operacji w interfejsie generuje wywołania RPC. Przykładowo:
- Tworzenie rekordu
- Zatwierdzanie dokumentu
- Naciśnięcie przycisku akcji
- Uruchomienie akcji serwera
Frontend wysyła zapytanie do backendu; jeśli podczas przetwarzania pojawi się wyjątek, serwer zwraca komunikat RPC do klienta.
Mówiąc prościej:
Błąd RPC oznacza, że serwer napotkał wyjątek podczas obsługi żądania.
W logach serwera błędy RPC często towarzyszą pełnym ścieżkom traceback, które wskazują miejsce awarii.
Najczęstsze przyczyny błędów RPC w Odoo
1. Wyjątek Pythona po stronie serwera
Najczęściej błąd wynika z błędu w module niestandardowym, np. z podniesionego wyjątku.
Przykład: raise ValueError("Invalid value") w kodzie backendu spowoduje zgłoszenie RPC do klienta.
W efekcie frontend zobaczy ogólny komunikat RPC zamiast szczegółowej walidacji.
W praktyce większość błędów RPC to po prostu wyjątki z backendu uwidocznione w UI.
2. Problemy z uprawnieniami podczas wywołania RPC
Gdy użytkownik wykonuje akcję bez wymaganych uprawnień, Odoo może zwrócić błąd RPC zamiast przyjaznego komunikatu o braku dostępu.
3. Nieprawidłowe wywołanie metody
Błąd występuje, jeśli frontend próbuje wywołać metodę, która:
- nie istnieje,
- otrzymuje niewłaściwe parametry,
- lub nie została poprawnie zdefiniowana.
W takich przypadkach warstwa RPC nie przetworzy żądania.
4. Naruszenie ograniczeń bazy danych
Przykłady:
- naruszenie ograniczenia unikalności,
- błąd klucza obcego,
które mogą ujawnić się jako błędy RPC w UI.
5. Integracje lub wywołania zewnętrznych API
Jeśli Odoo komunikuje się z zewnętrznym systemem, błąd RPC może być skutkiem nieprawidłowego payloadu,
- awarii uwierzytelnienia,
- lub brakujących danych,
- a przyczyna w rzeczywistości leży po stronie logiki integracji.
Choć użytkownik widzi błąd w interfejsie, warto sprawdzić całą ścieżkę integracyjną.
6. Przekroczenie czasu lub problemy z wydajnością serwera
Długotrwałe zadania mogą przekroczyć limity serwera i wygenerować błędy RPC.
To często występuje przy:
- importach hurtowych,
- masowych aktualizacjach,
- operacjach intensywnie obciążających CPU.
Jak naprawić błąd RPC w Odoo
Krok 1 – Sprawdź logi serwera
Komunikat w UI rzadko wystarcza do diagnozy.
Otwórz logi Odoo i wyszukaj pełny traceback.
Szukaj linijek rozpoczynających się od Traceback (most recent call last):
To najpewniejszy sposób na ustalenie pierwotnej przyczyny.
Krok 2 – Określ akcję wyzwalającą
Ustal, co robił użytkownik w momencie wystąpienia błędu:
- kliknął przycisk,
- Tworzenie rekordu
- uruchomił zaplanowane zadanie,
czy wykonał import — i spróbuj odtworzyć problem w środowisku testowym.
Krok 3 – Przejrzyj kod niestandardowy
Jeśli są zainstalowane moduły custom, sprawdź ostatnie zmiany kodu.
- Zwróć uwagę na zmodyfikowane metody i miejsca, gdzie rzucono wyjątki.
- Skontroluj przeciążone create/write oraz inne nadpisane funkcje.
- Szczególną uwagę poświęć logice przycisków akcji.
W praktyce większość błędów wywodzi się z własnych rozszerzeń systemu.
Krok 4 – Zweryfikuj prawa dostępu
Czasem to problem z uprawnieniami. Przetestuj tę samą akcję jako Administrator, by ustalić, czy błąd związany jest z rolami.
Krok 5 – Sprawdź payloady API
Przy integracjach upewnij się, że wysyłane dane są kompletne:
- wszystkie wymagane pola istnieją,
- relacyjne ID są poprawne,
- a uwierzytelnienie działa poprawnie.
Walidacja wcześniej, zanim dane trafią do Odoo, znacząco redukuje błędy RPC.
Krok 6 – Sprawdź ograniczenia bazy danych
Jeśli log odwołuje się do ograniczeń bazy:
- naruszenia unikalności,
- błędu klucza obcego,
- lub ograniczeń NOT NULL,
należy naprawić niespójność danych.
Jak zapobiegać błędom RPC
- Monitoruj i loguj wyjątki serwera,
- testuj moduły custom w środowisku staging,
- waliduj dane przed przesłaniem,
- unikaj ciężkiej logiki bezpośrednio w metodach przycisków,
- wdrażaj obsługę błędów w integracjach.
W środowiskach opartych na API, dodanie warstw walidacji przed pushem danych do Odoo zapobiega wielu RPC błędom zanim dotrą do użytkownika produkcyjnego.
Jak Dasolo stabilizuje warstwy API i RPC
Błędy RPC zwykle ukrywają głębsze problemy po stronie serwera — braki w walidacji, niechronione metody czy luki w obsłudze uwierzytelniania są częstymi źródłami powtarzających się awarii.
W Dasolo skupiamy się na wzmocnieniu stabilności RPC przez:
- ustrukturyzowaną walidację API
- kontrolowane obsługi wyjątków
- przejrzyste mechanizmy uwierzytelniania
- rzetelne logowanie i monitoring
- bezpieczną ekspozycję metod
Dobrze zaprojektowana warstwa integracyjna zmniejsza niespodziewane awarie RPC i podnosi odporność całego systemu.
Podsumowanie
Błąd "RPC Error" w Odoo pojawia się zwykle wtedy, gdy podczas zdalnego wywołania procedury backend zgłasza wyjątek. Choć komunikat wygląda ogólnie, źródło problemu najczęściej leży w logice serwera, uprawnieniach lub walidacji danych.
Analiza pełnych tracebacków, walidacja wejść API i wprowadzenie uporządkowanej obsługi błędów pozwalają ograniczyć powtarzające się błędy RPC. Wzmocnienie kanału komunikacji klient–serwer daje stabilniejsze integracje i przewidywalne zachowanie Odoo w produkcji.