Po pewnym czasie komentowania i zakładania, że SP działa dobrze z tymi samymi parametrami wejściowymi i danymi, gdy jest wykonywany w SSMS, w końcu myślę, że mogę dać ostatnią wskazówkę:
W zależności od tego, jakie akcje są wykonywane w SP (np. wstawianie/aktualizacja/usuwanie dużej ilości danych w pętli lub kursorze), na początku kodu należy ustawić nocount.
set nocount on
Jeśli tak nie jest lub nie pomaga, proszę dodać więcej informacji, o których już wspomniano w komentarzach (np. wszystkie ustawienia Joba i każdego Jobstepu, co zostało zarejestrowane, co jest w Jobhistory, sprawdź SQLerrorlogs, eventlogs,.. ..). Zajrzyj również do "Dzienników SQL Server", może znajdziesz tutaj trochę informacji. Dobrym pomysłem jest również spojrzenie na zdarzenia Application/System serwera bazy danych. Aby uzyskać podstawowy przegląd, możesz użyć Monitora aktywności w SSMS, wybierając Serwer bazy danych i wybierając "Monitor aktywności" z menu kontekstowego i poszukaj agenta sql.
Moją ostatnią próbą byłaby próba uruchomienia śledzenia sql dla agenta. W takim przypadku należy uruchomić śledzenie i filtrować m.in. przez użytkownika uruchamianego przez usługę SQLAgent. Jest tak wiele opcji, które możesz ustawić dla śladów, więc polecam poszukać go w Google, poszukać w MSDN lub zadać inne pytanie tutaj na stackoverflow.