বিষয়বস্তুতে যান

ফিচার ফ্ল্যাগ API

একটি ফিচার ফ্ল্যাগ হলো প্রপার্টিসহ একটি রিমোট সুইচ, যা SDK প্রতিটি ডিভাইসের জন্য পড়ে। এই API একটি অ্যাপ্লিকেশনের ফ্ল্যাগগুলো পরিচালনা করে: কন্ট্রোল প্যানেলের Audience → Feature Flags-এর মতো একই অপারেশন। কোনো ওয়েবসাইটে বা মোবাইল অ্যাপে ফ্ল্যাগ পড়তে Web SDK, Android SDK বা iOS SDK ব্যবহার করুন।

বেস URL

Anchor link to
https://rpc-api.svc-nue.pushwoosh.com

সমস্ত এন্ডপয়েন্ট HTTPS-এর মাধ্যমে পরিবেশিত হয়। অনুরোধ এবং প্রতিক্রিয়া application/json ব্যবহার করে।

প্রমাণীকরণ

Anchor link to

প্রতিটি অনুরোধে আপনার সার্ভার API টোকেন সহ একটি Authorization হেডার অবশ্যই অন্তর্ভুক্ত থাকতে হবে:

Authorization: Api YOUR_API_TOKEN

ফ্ল্যাগ পড়তে অ্যাপ্লিকেশনে অ্যাক্সেস প্রয়োজন। ফ্ল্যাগ তৈরি ও পরিবর্তন করতে অ্যাপ্লিকেশনটি পরিচালনার অধিকার প্রয়োজন।

কনভেনশন

Anchor link to
  • ফিল্ডের নামকরণ: অনুরোধের বডি lowerCamelCase বা snake_case গ্রহণ করে। প্রতিক্রিয়া snake_case ব্যবহার করে, যেমনটি ফিচার ফ্ল্যাগ অবজেক্ট-এ রয়েছে।
  • শতাংশ বেসিস পয়েন্টে প্রকাশ করা হয়: percent_bp 0 থেকে 10000 পর্যন্ত, যেখানে 2000 মানে 20%।
  • ভার্সন: প্রতিটি ফ্ল্যাগের একটি version থাকে। Update, SetRulePercent এবং Reshuffle আপনার সর্বশেষ পড়া ভার্সনটি নেয় এবং তারপর থেকে ফ্ল্যাগ পরিবর্তিত হলে VERSION_CONFLICT সহ ব্যর্থ হয়, ফলে একযোগে করা সম্পাদনা কখনো একে অপরকে ওভাররাইট করে না। ফ্ল্যাগটি আবার পড়ুন এবং পুনরায় চেষ্টা করুন।
  • স্ট্যাটাস: active, killed বা archived। Kill, Unkill, Archive এবং Restore শুধুমাত্র স্ট্যাটাস পরিবর্তন করে এবং কোনো ভার্সন নেয় না।

এন্ডপয়েন্টস

Anchor link to

প্রতিটি REST এন্ডপয়েন্টের একই প্যারামিটারসহ একটি MCP টুল রয়েছে:

পদ্ধতিপাথবর্ণনাMCP টুল
GET/api/applications/{application_code}/feature_flagsঅ্যাপ্লিকেশনের ফ্ল্যাগগুলোর তালিকাlist_feature_flags
GET/api/applications/{application_code}/feature_flags/{key}একটি ফ্ল্যাগ পানget_feature_flag
POST/api/applications/{application_code}/feature_flagsএকটি ফ্ল্যাগ তৈরি করুনcreate_feature_flag
POST/api/applications/{application_code}/feature_flags/{key}নাম, বর্ণনা, প্রপার্টি এবং নিয়ম প্রতিস্থাপন করুনupdate_feature_flag
POST/api/applications/{application_code}/feature_flags/{key}/rules/{rule_id}/percentএকটি নিয়মের রোলআউট পরিবর্তন করুনset_feature_flag_rule_percent
POST/api/applications/{application_code}/feature_flags/{key}/killসবার জন্য ফ্ল্যাগ বন্ধ করুনkill_feature_flag
POST/api/applications/{application_code}/feature_flags/{key}/unkillবন্ধ করা ফ্ল্যাগ আবার চালু করুনunkill_feature_flag
POST/api/applications/{application_code}/feature_flags/{key}/archiveএকটি ফ্ল্যাগ আর্কাইভ করুনarchive_feature_flag
POST/api/applications/{application_code}/feature_flags/{key}/restoreআর্কাইভ করা ফ্ল্যাগ পুনরুদ্ধার করুনrestore_feature_flag
POST/api/applications/{application_code}/feature_flags/{key}/reshuffleব্যবহারকারীদের একটি নতুন নমুনা বেছে নিনreshuffle_feature_flag
GET/api/applications/{application_code}/feature_flags/{key}/historyএকটি ফ্ল্যাগের পরিবর্তনগুলোর তালিকা দেখুনlist_feature_flag_history

List এবং History ছাড়া প্রতিটি এন্ডপয়েন্ট { "flag": { ... } } রিটার্ন করে, অর্থাৎ অপারেশনের পরের ফিচার ফ্ল্যাগ অবজেক্ট।

তালিকা

Anchor link to

GET /api/applications/{application_code}/feature_flags

অনুরোধটি এই প্যারামিটারগুলো নেয়:

প্যারামিটারঅবস্থানটাইপবর্ণনা
application_codepathstringঅ্যাপ্লিকেশন কোড।
statusquerystringঐচ্ছিক। active, killed বা archived। সমস্ত ফ্ল্যাগের তালিকা পেতে এটি বাদ দিন।

{ "flags": [ ... ] } রিটার্ন করে, অর্থাৎ ফিচার ফ্ল্যাগ অবজেক্টের একটি অ্যারে।

GET /api/applications/{application_code}/feature_flags/{key}

একটি ফ্ল্যাগ তার প্রপার্টি, নিয়ম এবং বর্তমান version সহ রিটার্ন করে।

তৈরি করুন

Anchor link to

একটি active ফ্ল্যাগ তৈরি করে। সার্ভার প্রতিটি নিয়মের rule_id জেনারেট করে।

POST /api/applications/{application_code}/feature_flags

অনুরোধের বডিতে এই ফিল্ডগুলো থাকে:

প্যারামিটারটাইপপ্রয়োজনীয়বর্ণনা
keystringহ্যাঁ^[A-Za-z0-9_.-]{1,58}$-এর সাথে মেলে। অ্যাপ্লিকেশনে অনন্য, আর্কাইভ করা ফ্ল্যাগসহ, এবং কেস-ইনসেনসিটিভভাবে তুলনা করা হয়। পরে পরিবর্তন করা যায় না।
namestringনাপ্রদর্শন নাম, সর্বোচ্চ 255 অক্ষর।
descriptionstringনাবর্ণনা।
propertiesপ্রপার্টি অবজেক্টের অ্যারেনাসর্বোচ্চ 50টি প্রপার্টি।
defaultsobjectহ্যাঁ, যদি প্রপার্টি থাকেযেসব ডিভাইসের জন্য ফ্ল্যাগ বন্ধ, তাদের জন্য প্রতিটি প্রপার্টির মান, প্রপার্টি কী অনুযায়ী। প্রতিটি মান অবশ্যই প্রপার্টির টাইপের সাথে মিলতে হবে।
rulesনিয়ম অবজেক্টের অ্যারেনাক্রমানুসারে সাজানো নিয়ম, সর্বোচ্চ 10টি। যে প্রথম নিয়মের সেগমেন্ট ডিভাইসের সাথে মেলে, সেটিই সিদ্ধান্ত নেয়।
অনুরোধের উদাহরণ
Anchor link to
{
"key": "new_checkout",
"name": "New checkout",
"properties": [
{ "key": "button_color", "type": "string" },
{ "key": "show_apple_pay", "type": "boolean" }
],
"defaults": { "button_color": "blue", "show_apple_pay": false },
"rules": [
{
"name": "Beta testers",
"filter_code": "XXXXX-XXXXX",
"percent_bp": 10000,
"overrides": { "button_color": "green", "show_apple_pay": true }
},
{
"name": "Everyone else",
"filter_code": "",
"percent_bp": 2000,
"overrides": { "button_color": "orange" }
}
]
}

আপডেট করুন

Anchor link to

একটি ফ্ল্যাগের নাম, বর্ণনা, প্রপার্টি, ডিফল্ট এবং নিয়ম প্রতিস্থাপন করে। এখানে স্ট্যাটাস কখনো পরিবর্তিত হয় না। শুধু পরিবর্তিত ফিল্ড নয়, সমস্ত ফিল্ড পাঠান।

POST /api/applications/{application_code}/feature_flags/{key}

তৈরি করুন-এর মতো একই বডি নেয়, key ছাড়া, সাথে আপনার সর্বশেষ পড়া version। প্রতিটি বিদ্যমান নিয়মের rule_id বজায় রাখুন। rule_id ছাড়া একটি নিয়ম নতুন হিসেবে তৈরি হয়। প্রপার্টি তৈরি হওয়ার পর তার টাইপ পরিবর্তন করা যায় না।

SetRulePercent

Anchor link to

একটি নিয়মের রোলআউট পরিবর্তন করে। শতাংশ বাড়লে যেসব ব্যবহারকারীর কাছে ইতিমধ্যে ফ্ল্যাগটি আছে, তারা সেটি ধরে রাখেন।

POST /api/applications/{application_code}/feature_flags/{key}/rules/{rule_id}/percent

{ "percentBp": 5000, "version": 3 }

Kill এবং Unkill

Anchor link to

POST .../feature_flags/{key}/kill প্রতিটি ডিভাইসের জন্য ফ্ল্যাগ বন্ধ করে, এরপর ডিভাইসগুলো ডিফল্ট প্রপার্টি মান পায়। নিয়ম এবং প্রপার্টি রেখে দেওয়া হয়।

POST .../feature_flags/{key}/unkill বন্ধ করা ফ্ল্যাগ তার আগের নিয়মসহ আবার চালু করে।

উভয়ই একটি খালি বডি {} নেয়।

Archive এবং Restore

Anchor link to

POST .../feature_flags/{key}/archive ডিভাইসে ফ্ল্যাগ পাঠানো বন্ধ করে। আর্কাইভ করা ফ্ল্যাগ প্ল্যানের প্রতি অ্যাপ্লিকেশন ফ্ল্যাগ সীমার মধ্যে গণনা হয় না, এবং এর কী সংরক্ষিত থাকে।

POST .../feature_flags/{key}/restore আর্কাইভ করা ফ্ল্যাগকে killed হিসেবে ফিরিয়ে আনে, ফলে এটি কখনো নিজে থেকে চালু হয় না। আবার রোল আউট করতে unkill কল করুন।

উভয়ই একটি খালি বডি {} নেয়।

প্রতিটি ব্যবহারকারীকে একটি নতুন বাকেটে রাখে, ফলে একই শতাংশ ব্যবহারকারীদের একটি ভিন্ন নমুনা নির্বাচন করে। যাদের জন্য ফ্ল্যাগ চালু ছিল তাদের কেউ কেউ এটি হারান, এবং অন্যরা এটি পান।

POST /api/applications/{application_code}/feature_flags/{key}/reshuffle

{ "confirm": true, "version": 3 }

confirm অবশ্যই true হতে হবে। অন্যথায় অনুরোধটি CONFIRM_REQUIRED সহ ব্যর্থ হয়।

ইতিহাস

Anchor link to

একটি ফ্ল্যাগের পরিবর্তনগুলো রিটার্ন করে, সবচেয়ে নতুনটি আগে: প্রতিটি পরিবর্তন কে করেছেন, কখন করেছেন এবং কোন ফিল্ডগুলো বদলেছে। Get-এর মতো এর জন্যও অ্যাপ্লিকেশনে অ্যাক্সেস প্রয়োজন, এবং অ্যাপ্লিকেশন বা ফ্ল্যাগ না থাকলে এটি 404 রিটার্ন করে।

GET /api/applications/{application_code}/feature_flags/{key}/history

অনুরোধটি এই প্যারামিটারগুলো নেয়:

প্যারামিটারঅবস্থানটাইপবর্ণনা
application_codepathstringঅ্যাপ্লিকেশন কোড।
keypathstringফ্ল্যাগের কী।
pagequeryintegerঐচ্ছিক। পৃষ্ঠা নম্বর, 0 থেকে শুরু।
per_pagequeryintegerঐচ্ছিক। প্রতি পৃষ্ঠায় এন্ট্রির সংখ্যা, ডিফল্টভাবে 20, সর্বোচ্চ 100।

{ "entries": [ ... ], "total": N } রিটার্ন করে, যেখানে total হলো সব পৃষ্ঠা মিলিয়ে মোট এন্ট্রির সংখ্যা। প্রতিটি এন্ট্রিতে এই ফিল্ডগুলো থাকে:

ফিল্ডটাইপবর্ণনা
versionintegerএই পরিবর্তনের ফলে তৈরি ফ্ল্যাগ সংস্করণ।
actionstringcreate, update, set_percent, kill, unkill, archive, restore বা reshuffle।
user_idstringযে কন্ট্রোল প্যানেল ব্যবহারকারী পরিবর্তনটি করেছেন তাঁর ID। API টোকেন দিয়ে বা কোনো Pushwoosh সার্ভিসের মাধ্যমে করা পরিবর্তনের জন্য 0।
user_emailstringসেই ব্যবহারকারীর ইমেল। ব্যবহারকারী মুছে ফেলা হলে বা user_id 0 হলে খালি।
by_api_tokenbooleanপরিবর্তনটি API টোকেন দিয়ে করা হলে true। কোনো ব্যবহারকারী বা Pushwoosh সার্ভিসের করা পরিবর্তনের জন্য false।
api_token_namestringপরিবর্তনের সময় API টোকেনের যে নাম ছিল। টোকেন মুছে ফেলার পরেও এটি থেকে যায়। টোকেনের কোনো নাম না থাকলে বা by_api_token false হলে খালি।
createdstringপরিবর্তনের সময়, RFC 3339।
flagফিচার ফ্ল্যাগ অবজেক্টপরিবর্তনের পরের ফ্ল্যাগ।
changesarrayযে ফিল্ডগুলো আগের সংস্করণ থেকে আলাদা। create ও reshuffle-এর জন্য খালি, এবং ইতিহাস রেকর্ড শুরু হওয়ার আগে তৈরি ফ্ল্যাগের সবচেয়ে পুরোনো এন্ট্রির জন্যও খালি, কারণ তুলনা করার মতো আগের কোনো সংস্করণ নেই।

changes-এর প্রতিটি আইটেমে field, before এবং after থাকে। before ও after-এ মানগুলো JSON স্ট্রিং হিসেবে এনকোড করা থাকে, তাই স্ট্রিং মান উদ্ধৃতিচিহ্নের মধ্যে আসে। field এই মানগুলো নেয়:

fieldকী বদলেছে
name, description, statusএই নামের ফ্ল্যাগ ফিল্ড।
propertiesপ্রপার্টি এবং সেগুলোর ডিফল্ট মান।
rules[<rule_id>]একটি নিয়ম। যোগ করা নিয়মের জন্য before খালি থাকে। সরানো নিয়মের জন্য after খালি থাকে।
rules.orderনিয়মগুলোর ক্রম।
প্রতিক্রিয়ার উদাহরণ
Anchor link to
{
"entries": [
{
"version": 4,
"action": "set_percent",
"user_id": "12345",
"user_email": "owner@example.com",
"by_api_token": false,
"api_token_name": "",
"created": "2026-10-14T09:30:00Z",
"flag": { "key": "new_checkout", "status": "active", "version": 4 },
"changes": [
{
"field": "rules[r_1a2b3c4d]",
"before": "{\"rule_id\":\"r_1a2b3c4d\",\"name\":\"Beta testers\",\"filter_code\":\"XXXXX-XXXXX\",\"percent_bp\":2000,\"overrides\":{\"button_color\":\"green\"}}",
"after": "{\"rule_id\":\"r_1a2b3c4d\",\"name\":\"Beta testers\",\"filter_code\":\"XXXXX-XXXXX\",\"percent_bp\":5000,\"overrides\":{\"button_color\":\"green\"}}"
}
]
}
],
"total": 4
}

উদাহরণের flag অবজেক্টটি সংক্ষিপ্ত করা হয়েছে। ইতিহাস 13 অক্টোবর 2026 থেকে হওয়া পরিবর্তনগুলোর জন্য রেকর্ড করা হয়। রেকর্ড করা পরিবর্তন নেই এমন ফ্ল্যাগের জন্য কোনো এন্ট্রি রিটার্ন হয় না।

একটি ডিভাইসের জন্য ফ্ল্যাগ পড়ুন

Anchor link to

SDK-গুলো একটি আলাদা এন্ডপয়েন্ট থেকে ফ্ল্যাগ পড়ে। Web SDK, Android SDK বা iOS SDK ব্যবহার করলে এটি কল করার দরকার নেই, কারণ সেগুলো নিজেরাই হোস্ট বেছে নেয় এবং উত্তর ক্যাশ করে।

POST https://api.pushwoosh.com/api/v2/device-api/getFeatureFlags

অনুরোধের বডিতে এই ফিল্ডগুলো থাকে:

ফিল্ডটাইপবর্ণনা
applicationstringঅ্যাপ্লিকেশন কোড।
hwidstringডিভাইসের HWID।
etagstringঐচ্ছিক। ডিভাইসের কাছে থাকা সর্বশেষ উত্তরের etag।

প্রতিক্রিয়ায় এই ফিল্ডগুলো থাকে:

ফিল্ডটাইপবর্ণনা
flagsobjectফ্ল্যাগ কী অনুযায়ী ফ্ল্যাগগুলো। প্রতিটিতে enabled, rule_id এবং properties থাকে। কোনো নিয়ম না মিললে rule_id হয় default, এবং বন্ধ করা ফ্ল্যাগের জন্য খালি। আর্কাইভ করা ফ্ল্যাগ অন্তর্ভুক্ত থাকে না।
etagstringপরের অনুরোধের সাথে এটি পাঠান।
not_modifiedbooleanপাঠানো etag হালনাগাদ থাকলে true। তখন flags বাদ দেওয়া হয় এবং ডিভাইস তার কপি রেখে দেয়।
partialbooleanডিভাইসের সেগমেন্টগুলো সময়মতো মেলানো না গেলে true। এই উত্তর ক্যাশ করবেন না।

ফিচার ফ্ল্যাগ ছাড়া প্ল্যানে প্রতিক্রিয়া খালি থাকে।

অবজেক্ট

Anchor link to

ফিচার ফ্ল্যাগ অবজেক্ট

Anchor link to

প্রতিটি এন্ডপয়েন্ট ফ্ল্যাগটি এই আকারে রিটার্ন করে:

ফিল্ডটাইপবর্ণনা
application_codestringযে অ্যাপ্লিকেশনের অন্তর্গত ফ্ল্যাগটি।
keystringফ্ল্যাগের কী।
namestringপ্রদর্শন নাম।
descriptionstringবর্ণনা।
statusstringactive, killed বা archived।
propertiesপ্রপার্টি অবজেক্টের অ্যারেফ্ল্যাগের প্রপার্টি।
defaultsobjectযেসব ডিভাইসের জন্য ফ্ল্যাগ বন্ধ, তাদের জন্য প্রতিটি প্রপার্টির মান।
rulesনিয়ম অবজেক্টের অ্যারেক্রমানুসারে সাজানো নিয়ম।
versionintegerএটি Update, SetRulePercent এবং Reshuffle-এর সাথে ফেরত পাঠান।
createdstringতৈরির সময়, RFC 3339।
updatedstringসর্বশেষ পরিবর্তনের সময়, RFC 3339।
last_modified_by_user_idstringকন্ট্রোল প্যানেলের যে ব্যবহারকারী সর্বশেষ ফ্ল্যাগটি পরিবর্তন করেছেন। শেষ পরিবর্তনটি API টোকেন দিয়ে বা কোনো Pushwoosh সার্ভিসের মাধ্যমে করা হলে 0।

প্রপার্টি অবজেক্ট

Anchor link to

একটি প্রপার্টি এমন একটি মান বর্ণনা করে যা SDK ফ্ল্যাগ থেকে পড়ে:

ফিল্ডটাইপবর্ণনা
keystring^[A-Za-z0-9_]{1,64}$-এর সাথে মেলে, ফ্ল্যাগের মধ্যে অনন্য।
typestringstring, number, boolean বা json। প্রপার্টি তৈরি হওয়ার পর পরিবর্তন করা যায় না।

নিয়ম অবজেক্ট

Anchor link to

একটি নিয়ম নির্ধারণ করে কার জন্য ফ্ল্যাগ চালু হবে এবং কোন মানসহ:

ফিল্ডটাইপবর্ণনা
rule_idstringসার্ভার দ্বারা জেনারেট করা, r_-এর পরে 8টি হেক্স অঙ্ক, এবং আপডেটের মধ্যে স্থির থাকে। নতুন নিয়মের জন্য এটি খালি রাখুন।
namestringনিয়মের নাম।
filter_codestringযে সেগমেন্টের সাথে ডিভাইসকে অবশ্যই মিলতে হবে। খালি থাকলে প্রতিটি ডিভাইসের সাথে মেলে। সেগমেন্টে শুধুমাত্র ট্যাগ, লোকেশন, অ্যাপ্লিকেশন এবং লিস্ট শর্ত থাকতে পারে।
percent_bpintegerমিলে যাওয়া ব্যবহারকারীদের যে অংশের জন্য ফ্ল্যাগ চালু, 0–10000। সেগমেন্টের সাথে মেলে এমন ডিভাইস শতাংশের বাইরে পড়লেও এই নিয়মেই থেমে যায়।
overridesobjectপ্রপার্টি মান যা এই নিয়ম যেসব ডিভাইসের জন্য চালু করে তাদের ডিফল্ট প্রতিস্থাপন করে, প্রপার্টি কী অনুযায়ী।

ত্রুটি

Anchor link to

প্রত্যাখ্যাত অনুরোধ এই HTTP স্ট্যাটাস কোডগুলোর একটি রিটার্ন করে:

HTTP স্ট্যাটাসঅর্থ
400 Bad Requestঅনুরোধটি অবৈধ (field_violations) অথবা ফ্ল্যাগের অবস্থা বা প্ল্যান এটির অনুমতি দেয় না (Type)। নিচে বডির ফরম্যাট এবং কারণগুলো দেখুন।
401 UnauthorizedAuthorization হেডার অনুপস্থিত অথবা টোকেনটি অবৈধ।
403 Forbiddenটোকেনটি অ্যাপ্লিকেশনটি পরিচালনা করতে পারে না, অথবা অ্যাপ্লিকেশনটি একটি সিস্টেম অ্যাপ্লিকেশন।
404 Not Foundঅ্যাপ্লিকেশন বা ফ্ল্যাগটি বিদ্যমান নেই।
409 Conflictএই মুহূর্তে অন্য একটি অনুরোধ একই ফ্ল্যাগ পরিবর্তন করছে। অনুরোধটি পুনরায় চেষ্টা করুন।
500 Internal Server Errorঅপ্রত্যাশিত সার্ভার ব্যর্থতা। বডি হলো {"message": "Sorry, an unexpected error occurred"}।

একটি অবৈধ অনুরোধ ফিল্ড লঙ্ঘনের তালিকাসহ 400 রিটার্ন করে। প্রতিটি লঙ্ঘন ফিল্ড, কারণ এবং কারণের আর্গুমেন্ট উল্লেখ করে:

{
"code": 3,
"message": "validation failed",
"details": [
{
"@type": "type.googleapis.com/pushwoosh.rpc.errors.v3.BadRequest",
"field_violations": [
{
"field": "key",
"description": "a feature flag with this key already exists in the application",
"reason": "KEY_TAKEN",
"args": { "key": "new_checkout" }
}
]
}
]
}

ফ্ল্যাগের অবস্থা বা প্ল্যান যে অনুরোধের অনুমতি দেয় না, তা একটি ব্যর্থ পূর্বশর্তসহ 400 রিটার্ন করে। এর Type এবং Description ফিল্ড বড় হাতের অক্ষরে শুরু হয়:

{
"code": 9,
"message": "precondition failed",
"details": [
{
"@type": "type.googleapis.com/pushwoosh.rpc.errors.v3.FailedPrecondition",
"Type": "VERSION_CONFLICT",
"Description": "feature flag was changed: version 3 was sent, the current one is 4"
}
]
}

ফিল্ড লঙ্ঘনের reason এবং ব্যর্থ পূর্বশর্তের Type এই মানগুলো নেয়:

কারণউৎস
KEY_INVALIDকী ^[A-Za-z0-9_.-]{1,58}$-এর সাথে মেলে না।
KEY_TAKENঅ্যাপ্লিকেশনের অন্য একটি ফ্ল্যাগে, আর্কাইভ করা ফ্ল্যাগসহ, এই কী রয়েছে।
TEXT_INVALIDনাম বা বর্ণনা খুব দীর্ঘ অথবা নিষিদ্ধ অক্ষর রয়েছে।
PROPERTIES_LIMIT50টির বেশি প্রপার্টি।
PROPERTY_KEY_INVALIDএকটি প্রপার্টি কী অবৈধ বা পুনরাবৃত্ত।
PROPERTY_TYPE_INVALIDএকটি প্রপার্টির টাইপ string, number, boolean বা json নয়।
PROPERTY_TYPE_IMMUTABLEঅনুরোধটি একটি বিদ্যমান প্রপার্টির টাইপ পরিবর্তন করে।
VALUE_INVALIDএকটি ডিফল্ট বা ওভাররাইড অনুপস্থিত, প্রপার্টির টাইপের সাথে মেলে না, অথবা 5 স্তরের বেশি গভীরে নেস্টেড।
PROPERTIES_TOO_LARGEফ্ল্যাগের প্রপার্টি মান 10,000 বাইট ছাড়িয়ে যায়।
RULES_LIMIT10টির বেশি নিয়ম।
RULE_NOT_FOUNDrule_id ফ্ল্যাগের নিয়মগুলোর একটি নয়।
PERCENT_INVALIDpercent_bp 0–10000-এর বাইরে।
OVERRIDE_UNKNOWN_PROPERTYএকটি ওভাররাইড এমন প্রপার্টির নাম উল্লেখ করে যা ফ্ল্যাগে নেই।
SEGMENT_NOT_FOUNDনিয়মের সেগমেন্ট বিদ্যমান নেই অথবা অন্য অ্যাপ্লিকেশনের অন্তর্গত।
INVALID_SEGMENT_TYPEনিয়মের সেগমেন্টে এমন একটি শর্ত আছে যা ফ্ল্যাগ মূল্যায়ন করতে পারে না: ইভেন্ট, স্ট্যাটিক, এক্সটার্নাল, লাস্ট আপডেট বা বেস্ট টাইম টু সেন্ড।
FLAG_DEPENDENCYনিয়মের সেগমেন্টে একটি ফিচার ফ্ল্যাগ শর্ত আছে, আর একটি ফ্ল্যাগ অন্য ফ্ল্যাগের ওপর নির্ভর করতে পারে না। Create, Update এবং Restore এটি রিটার্ন করে, সেগমেন্ট কোড থাকে filter_code-এ।
CONFIRM_REQUIREDReshuffle confirm: true ছাড়া পাঠানো হয়েছে।
TAG_CONFLICTঅ্যাকাউন্টে PW_FF_-এর পরে ফ্ল্যাগ কী নামে একটি কাস্টম ট্যাগ রয়েছে।
FEATURE_FLAGS_NOT_ALLOWEDঅ্যাকাউন্টের প্ল্যানে ফিচার ফ্ল্যাগ অন্তর্ভুক্ত নেই।
FLAGS_LIMITঅ্যাপ্লিকেশনে প্ল্যানের অনুমোদিত সংখ্যক নন-আর্কাইভ ফ্ল্যাগ রয়েছে।
VERSION_CONFLICTআপনার পাঠানো version-এর পর থেকে ফ্ল্যাগটি পরিবর্তিত হয়েছে।
PAYLOAD_TOO_LARGEঅ্যাপ্লিকেশনের ফ্ল্যাগগুলো একটি ডিভাইসের উত্তরে 64 KB-এর বেশি জায়গা নেবে।
STATUS_CONFLICTস্ট্যাটাস অপারেশনটির অনুমতি দেয় না, যেমন একটি আর্কাইভ করা ফ্ল্যাগ বন্ধ করা।