Ended up figuring it out myself. Changes are in red.
WHILE @counter <= @Max_srch_id
BEGIN
Select @cscd_srch_string = @cscd_srch_string+srch_val+Char(9)
from ##srch_val
JOIN srch_elmt_assoc on srch_val_id = srea_sche_id
Where srch_val_id in (Select srch_val_id from ##Srch_val where srch_val IS NOT Null)
AND srea_srch_id = @srch_id
IF @cscd_srch_string = ''
BREAK
Set @cscd_srch_string = LEFT(@cscd_srch_string,LEN(@cscd_srch_string)-1)--Get rid of the trailing tab
--Print @srch_id
exec @intRetVal = RHD_OMAP..rhd_search_source @srch_id, @cscd_srch_string
IF (@intRetVal <> 1)
BEGIN
BREAK
END
SET @counter = @counter + 1
SELECT @srch_id = MIN(sa.srea_srch_id)
From srch_elmt_assoc sa
Join ##Srch_val s on sa.srea_sche_id = s.srch_val_id
Join search sr on sa.srea_srch_id = sr.srch_id
Where sa.srea_priority = 1
and s.srch_val is not null
and sa.srea_srch_id <> 6
and sa.srea_srch_id > @srch_id
Set @cscd_srch_string = ''
END
IF (@intRetVal = 1) --Placed error return outside of the loop.
Print 'No Records found'