```python
def first_deadline_miss(jobs: list[dict]) -> str:
    if not jobs:
        return ""
    
    for job in jobs:
        if not isinstance(job['name'], str) or not job['name']:
            raise ValueError("Job name must be a non-empty string")
        if not isinstance(job['work'], int) or job['work'] <= 0:
            raise ValueError("Work time must be a positive integer")
        if not isinstance(job['due'], int) or job['due'] <= 0:
            raise ValueError("Due time must be a positive integer")
    
    jobs.sort(key=lambda x: (x['due'], jobs.index(x)))
    current_time = 0
    
    for job in jobs:
        current_time += job['work']
        if current_time > job['due']:
            return job['name']
    
    return ""
```