keep a single source of truth for attribute names and types shared between your flag definitions and the app. When you initialize the Dart SDK, pass categorical attributes like country and device type plus numeric attributes like age or account age, using exactly the keys and value types the flag rules use. Initialize once at app start, dont re-init per screen. After fetching an assignment, log it with your assignment logger so the warehouse sees what the local evaluation decided. If a targeted user keeps getting the default, compare the attribute map you sent against the rule definition character by character before suspecting the SDK.