• Finally I got this problem fixed. The problem is the clustered index of Sysjobsteps table where step id is not in the order it suppose to be. Running DBCC DBREINDEX does not fix the problem, you really have to drop and recreate it. Following are the steps to reconstruct Sysjobsteps table:

    (1) Stop SQLSERVERAGENT

    (2) write down the name of indexes and columns that make up the index which are: clust ==> unique clustered ==> job_id, step_id

           nc1 ==> unique nonclustered ==> job_id, step_name

    (3) Point to MSDB database and type:

         select * into tempSysjobsteps from sysjobsteps

    (4) truncate table Sysjobsteps

    (5) drop index sysjobsteps.clust

         drop index sysjobsteps.nc1

    (6) insert into sysjobsteps select * from tempSysjobsteps order by job_id, step_id

    (7) create unique clustered index clust on sysjobsteps (job_id, step_id)

         create unique nonclustered index nc1 on sysjobsteps (job_id, step_name)

    (8) drop table tempSysjobsteps

    (9) Start SQLSERVERAGENT