У вас идет вложенность хэндлеров. Да и вообщем, для фунции ansk не нужен декоратор, так как вы используете
register_next_step_handler
@bot.message_handler(content_types=['text'])
def ans4(message):
bot.send_message(message.chat.id, '4.Какой у вас опыт работы? \nПримерное количество контрактов!')
bot.register_next_step_handler(message, ansk)
def ansk(message):
if not message.text.isdigit():
bot.send_message(message.chat.id, 'Ошибка! Напишите значение в цифрах! \nКакой у вас опыт работы?')
bot.register_next_step_handler(message, ansk)
else:
global salary
salary = message.text.strip()
bot.register_next_step_handler(message, ans5)
И еще один совет: не используйте global. Это плохая практика. Например, если вы попробуете параллельно использовать бота с нескольких аккаунтов, то глобальные переменные будут переопределяться каждый раз для всех юзеров. Это может (99%) вызвать ошибки