Polymarket ত্রুটি কোড এবং সমাধান
সাধারণ Polymarket API এবং UI ত্রুটিগুলি, এগুলি কী বোঝায় এবং ডেভেলপার ও সক্রিয় ব্যবহারকারীদের জন্য ব্যবহারিক সমাধান।
Polymarket ত্রুটি কোড এবং সমাধান
এই গাইডটি UI এবং API-এ সবচেয়ে সাধারণ যে Polymarket ত্রুটি কোডগুলো দেখা যায় সেগুলি ব্যাখ্যা করে, কেন সেগুলো ঘটে, এবং সেগুলো সমাধানের বাস্তবধর্মী ধাপগুলো দেয়। আপনি যদি ইন্টিগ্রেশন, অর্ডার ফ্লো, বা ওয়ালেট কানেকশন ডিবাগ করছেন, এই গাইডটি দ্রুত সমস্যার টার্গেট নির্ধারণে সাহায্য করবে।
মূল শিক্ষা
- Polymarket ত্রুটিগুলো কয়েকটি মূল বালতিতে পড়ে: geoblocking (403), API ভ্যালিডেশন (422), রেট লিমিট, CLOB/ট্রেডিং অথরাইজেশন, ওয়ালেট বা pUSD তহবিল, এবং CTF/CTF-অপারেশন সমস্যা।
- Gamma লিস্টিং কলগুলোর জন্য কursor-ভিত্তিক প্যাজিনেশন (
after_cursor) ব্যবহার করুন —offsetHTTP 422 দিয়ে প্রত্যাখ্যাত হয়। - CLOB-এ ট্রেডিংয়ের জন্য API কী + HMAC প্রয়োজন; রিডগুলি পাবলিক।
- অনেক UI-র "order rejected" কেসের কারণ হচ্ছে ওয়ালেট ডিপ্লয়মেন্ট, অপর্যাপ্ত pUSD, approvals, tick-size পরিবর্তন, বা FAK আংশিক ফিল — Relayer ফ্লো এবং CLOB অর্ডার রেসপন্স চেক করুন।
কেন ত্রুটিগুলো গুরুত্বপূর্ণ (সংক্ষিপ্ত)
একটি প্রেডিকশন-মার্কেট ফ্লোতে ত্রুটিগুলো অর্ডার ব্লক করতে পারে, আংশিক ফিল ঘটাতে পারে, বা রিকনসিলিয়েশন স্তব্ধ করতে পারে। Polymarket একাধিক সারফেস ব্যবহার করে (Gamma, Data, CLOB, এবং Market WebSocket)। কোন সারফেসটি ত্রুটি ফিরিয়েছে তা জানলে ফিক্স সীমাবদ্ধ করা সহজ হয়।
H2: সাধারণ API এবং WebSocket ত্রুটির প্যাটার্ন
Gamma (https://gamma-api.polymarket.com)
- উপসর্গ:
offsetব্যবহার করে বাজার প্যাজিনেশন করলে HTTP 422।- কেন: Gamma কীসেট-প্যাজিনেটেড।
offsetপ্রত্যাখ্যাত। - সমাধান: পূর্ববর্তী কল থেকে ফেরত থাকা
next_cursorদিয়েafter_cursorব্যবহার করুন। উদাহরণ:
- কেন: Gamma কীসেট-প্যাজিনেটেড।
curl 'https://gamma-api.polymarket.com/markets?limit=100&after_cursor=eyJpZCI6Ij...' \
-H 'Accept: application/json'
- উপসর্গ: লোডে 429-সদৃশ আচরণ (থ্রটলিং) বা অনিশ্চিত 5xx।
- কেন: Gamma এ এন্ডপয়েন্ট-নির্দিষ্ট রেট লিমিট প্রয়োগ করা হয় (উদাহরণস্বরূপ /markets এর সীমা আছে)।
- সমাধান: ডকুমেন্টেড লিমিট মেনে চলুন, এক্সপোনেনশিয়াল ব্যাকঅফ করুন, এবং অনুরোধগুলো পরিমার্জিত করুন (যেখানে যুক্তিসংগত
limit1000 পর্যন্ত বাড়ান)।
Data API (https://data-api.polymarket.com)
- পজিশন, ট্রেড, এবং ওপেন ইন্টারেস্টের সাধারণ রিডগুলি পাবলিক; যদি আপনি অথ নিয়ে ত্রুটি দেখে থাকেন, সঠিক বেস URL এবং হেডারগুলো যাচাই করুন।
CLOB (https://clob.polymarket.com)
- উপসর্গ: ট্রেডিং এন্ডপয়েন্টে অ্যাকশনের সময় অথেনটিকেশন ত্রুটি নিয়ে অর্ডার প্রত্যাখ্যাত।
- কেন: ট্রেডিং এন্ডপয়েন্টগুলোর জন্য API কী এবং HMAC সিগনেচার প্রয়োজন। রিড (অর্ডার বুক, midpoint, প্রাইস হিস্ট্রি) পাবলিক।
- সমাধান: CLOB স্পেস অনুযায়ী অনুরোধ জেনারেট ও সাইন করুন; রাইট করার আগে প্রথমে রিড টেস্ট করুন।
Market WebSocket (wss://ws-subscriptions-clob.polymarket.com/ws/market)
- উপসর্গ: সংযোগ বন্ধ হয়ে যায় বা রিয়েল-টাইম ইভেন্ট আসে না।
- কেন: সোকেটটি প্রতি 10 সেকেন্ডে PING আশা করে; সার্ভারগুলো আইডল সংযোগ কেটে দিতে পারে। এছাড়া, প্রতি সংযোগে সর্বোচ্চ 500টি ইনস্ট্রুমেন্ট সাবস্ক্রাইব করা যায়।
- সমাধান: প্রয়োজনীয় PING পাঠান এবং আপনি যদি 500 ইনস্ট্রুমেন্ট অতিক্রম করেন তবে সাবস্ক্রিপশনগুলো কয়েকটি সংযোগে ভাগ করুন।
H2: Geoblock এবং HTTP 403 (Polymarket geoblock 403)
- উপসর্গ: অর্ডার প্লেস করার বা ট্রেডিং রুট অ্যাক্সেস করার সময় HTTP 403; UI একটি geoblock বার্তা দেখায়।
- কেন: Polymarket নির্দিষ্ট ভূখণ্ড থেকে IP দ্বারা অর্ডার প্লেসিং ব্লক করে। কিছু অঞ্চল সম্পূর্ণভাবে ব্লক করা আছে; কয়েকটি close-only।
- সমাধান: আপনার IP অবস্থান নিশ্চিত করুন। যদি আপনি ব্লক করা অঞ্চলে থাকেন, Polymarket-এর অফিসিয়াল যোগ্যতা নির্দেশিকা অনুসরণ করুন। VPN ব্যপাস চেষ্টা করবেন না — এটি Terms of Service লঙ্ঘন করে। আপনি যদি মনে করেন ব্লকটি ভুল, তবে অফিসিয়াল সাইটের মাধ্যমে Polymarket সাপোর্ট-এ যোগাযোগ করুন এবং সংযোগ ডায়াগনস্টিকস এবং IP প্রমাণ প্রদান করুন।
H2: সাধারণ "order rejected" কারণ ও সমাধান
- ওয়ালেট এখনও ডিপ্লয় হয়নি বা প্রোক্সি মিসিং
- উপসর্গ: Relayer ফ্লো চলাকালীন ডিপ্লয়মেন্ট বা প্রোক্সি ত্রুটিতে অর্ডার ব্যর্থ হয়।
- কেন: Polymarket দুই ধরনের ওয়ালেট সমর্থন করে; non-Safe ব্যবহারকারীদের জন্য প্রথম লেনদেনে একটি প্রোক্সি ডিপ্লয় করা হয়।
- সমাধান: Relayer কে ওয়ালেট ডিপ্লয়মেন্ট ফ্লো সম্পন্ন করতে দিন। ট্রানজেকশন সম্পন্ন হলে অর্ডার পুনরায় চেষ্টা করুন।
- অপর্যাপ্ত pUSD বা টোকেন
- উপসর্গ: অপর্যাপ্ত ব্যালেন্সের কারণে অর্ডার প্রত্যাখ্যাত।
- কেন: ট্রেডগুলোর জন্য pUSD প্রয়োজন।
- সমাধান: আপনার অ্যাকাউন্টে pUSD যোগান (Polymarket-এর নির্দেশিকা দেখুন)। ওয়ালেটে টোকেন কনট্র্যাক্ট এবং ব্যালান্স নিশ্চিত করুন।
- ERC-20 approvals এবং Relayer ফ্লো
- উপসর্গ: অনুমোদনের জন্য অপেক্ষাতে অর্ডার আটকে থাকে।
- কেন: Relayer approvals গ্যাসলেসভাবে পরিচালনা করতে পারে, কিন্তু ওয়ালেট ফ্লো সম্পন্ন হতে হবে।
- সমাধান: Relayer অনুরোধ সম্পন্ন হয়েছে কি না নিশ্চিত করুন এবং আপনার ওয়ালেট UI-তে কোনো পেন্ডিং কনফার্মেশন আছে কি না দেখুন।
- Tick-size এবং ন্যূনতম ইনক্রিমেন্ট ব্যর্থতা
- উপসর্গ: অর্ডার প্রত্যাখ্যাত বা অপ্রত্যাশিতভাবে রাউন্ড হয়ে যায়; ছোট মূল্যের ভিন্নতা গ্রহণ করা হয় না।
- কেন: Polymarket একটি tick size প্রয়োগ করে (সাধারণত $0.01, এক্সট্রিম্সে $0.001 এ কড়া হয়)।
- সমাধান: সক্রিয় tick অনুসারে মূল্য ও পরিমাণ রাউন্ড করুন। পরিবর্তন সনাক্ত করতে Market WebSocket-এ
tick_size_changeসাবস্ক্রাইব করুন।
- FAK / মার্কেট অর্ডার আংশিক ফিল এবং স্লিপেজ
- উপসর্গ: মার্কেট অর্ডার আংশিক ফিল করে বা বাতিল হয়ে গেছে বলে দেখা যায়।
- কেন: CLOB হেল্পার FAK (Fill-And-Kill) ব্যবহার করে। যদি সম্পূর্ণ মিল না হয় বা স্লিপেজ প্রটেকশন কাজ করে, বাকিটা বাতিল হয়ে যায়।
- সমাধান: createMarketOrder রেসপন্সে পূর্ণ হওয়া পরিমাণ পরীক্ষা করুন এবং প্রোগ্রাম্যাটিকভাবে আংশিক ফিল হ্যান্ডেল করুন।
- ফি বা ক্যাটেগরি-সম্পর্কিত প্রত্যাখ্যান
- উপসর্গ: ফি-সম্পর্কিত ত্রুটির সাথে অর্ডার ব্যর্থ।
- কেন: টেকার ফি ক্যাটেগরি অনুযায়ী পরিবর্তিত হয় (বর্তমানে 0%–1.8%); বিল্ডাররা অতিরিক্ত বেসিস পয়েন্ট প্রযোজ্য করতে পারে।
- সমাধান: মার্কেট ক্যাটেগরি এবং আপনি যদি Builder ব্যবহার করেন তবে আপনার attribution হেডারগুলো নিশ্চিত করুন। আপনার খরচ গণনায় টেকার ফি অন্তর্ভুক্ত আছে কি না দেখুন।
H2: CTF অপারেশন এবং সেটেলমেন্ট ত্রুটি
- উপসর্গ:
split/merge/redeemব্যর্থ বা ত্রুটি দেয়। - কেন: CTF হল ERC-1155 outcome টোকেন ফ্রেমওয়ার্ক; যদি আপনার কাছে pUSD, টোকেন না থাকে, বা ওরাকল রেজলিউশন বিতর্কিত হয় তাহলে অপারেশন ব্যর্থ হতে পারে।
- সমাধান: ব্যালান্স যাচাই করুন এবং UMA রেজলিউশন সম্পন্ন হয়েছে কিনা নিশ্চিত করুন। যদি UMA বিতর্ক settlement-কে শিথিল করে, UMA চূড়ান্ত না হওয়া পর্যন্ত অপেক্ষা করুন।
H2: সমস্যার দ্রুত চালিকাভার চেকলিস্ট (ট্রাবলশুটিং রুনবুক)
- কোন সারফেস ত্রুটি রিপোর্ট করেছে তা নিশ্চিত করুন (Gamma, Data, CLOB, বা WebSocket)।
- রাইট করার আগে ন্যূনতম ব্যর্থ অনুরোধটি পুনরায় তৈরি করুন (GET order book বা GET market)।
- ওয়ালেট স্টেট চেক করুন: প্রোক্সি ডিপ্লয় হয়েছে কি না, pUSD ব্যালান্স, পেন্ডিং Relayer ট্রানজেকশন।
- tick size ভ্যালিডেট করুন এবং ইনপুটগুলো সেটি অনুযায়ী রাউন্ড করুন।
- প্যাজিনেশন ত্রুটির জন্য
after_cursor-এ স্যুইচ করুন (Gamma)। - রেট লিমিট সম্মান করুন এবং 429/5xx-এ ব্যাক অফ করুন।
আপনার ট্রেডিং বা ইন্টিগ্রেশনে এর প্রভাব
অর্ডার ব্লক করা ত্রুটিগুলো লেটেন্সি বাড়াবে এবং এক্সিকিউশন মান ক্ষতিগ্রস্ত করবে। ডিফেন্সিভ ক্লায়েন্ট লজিক তৈরি করুন: আংশিক ফিল সনাক্ত করুন, ব্যবহারকারীদের স্পষ্ট ত্রুটি বার্তা দেখান, এবং নিরাপদ retry জন্য পর্যাপ্ত স্টেট স্থায়ী করুন। CLOB রুটের মাধ্যমে অর্ডার রুট করা বিল্ডারদের জন্য, attribution হেডার এবং API কী/HMAC সঠিক আছে কি না নিশ্চিত করুন যাতে আকস্মিক প্রত্যাখ্যান না ঘটে।
সমাপ্তি
Polymarket ত্রুটি কোড সাধারণত কয়েকটি মূল কারণ নির্দেশ করে: geoblocking, প্যাজিনেশন/রেট লিমিট, ট্রেডিং জন্য অথ, ওয়ালেট/Relayer স্টেট, tick-size সীমাবদ্ধতা, এবং অপর্যাপ্ত ব্যালান্স। যখন আপনি একটি ত্রুটি দেখেন, সারফেসটি শনাক্ত করুন, র কাঁচা রেসপন্স ক্যাপচার করুন, এবং উপরের চেকলিস্ট অনুসরণ করুন। Polymarket-এর পাবলিক API এবং WebSocket এন্ডপয়েন্টগুলো প্রধান ডায়াগনস্টিক সারফেস; সেখান থেকেই শুরু করুন।
Frequently asked questions
Why do I get HTTP 422 from Gamma when paginating markets?
Gamma কীসেট প্যাজিনেশন ব্যবহার করে। API offset-কে HTTP 422 দিয়ে প্রত্যাখ্যান করে। পূর্ববর্তী কল থেকে ফেরত থাকা after_cursor মান এবং limit প্যারামিটার ব্যবহার করুন।
What does Polymarket geoblock 403 mean and how do I fix it?
একটি 403 geoblock নির্দেশ করে যে আপনার IP এমন একটি অঞ্চলে আছে যেখানে Polymarket অর্ডার প্লেসিং সীমিত করে। আপনার IP অবস্থান নিশ্চিত করুন এবং Polymarket-এর অফিসিয়াল যোগ্যতা নির্দেশিকা অনুসরণ করুন। ব্লক বায়পাস করার জন্য VPN ব্যবহার করবেন না; যদি আপনি মনে করেন এটি একটি ত্রুটি, তাহলে সাপোর্ট-এ যোগাযোগ করুন।
My market order was partially filled or cancelled — what happened?
CLOB হেল্পার ডিফল্টভাবে FAK (Fill-And-Kill) অর্ডার প্লেস করে। যদি লিকুইডিটি পুরোপুরি মিল না করে বা স্লিপেজ প্রটেকশন ট্রিগার করে, বাকিটা বাতিল হয়ে যায়। পূর্ণ হওয়া পরিমাণ নির্ধারণ করতে অর্ডার রেসপন্স পরীক্ষা করুন এবং সংরক্ষণমতো পুনরায় চেষ্টা করুন।
Why are my orders rejected for price increments?
Polymarket একটি tick size প্রয়োগ করে (সাধারণত $0.01, এক্সট্রিম্সে $0.001 এ কড়া হয়)। যদি আপনার মূল্য বা পরিমাণ ছোট ইনক্রিমেন্ট ব্যবহার করে, অর্ডার প্রত্যাখ্যাত বা রাউন্ড করা হবে। সর্বশেষ অবস্থা জানার জন্য Market WebSocket-এ tick_size_change সাবস্ক্রাইব করুন।
Do I need API keys to read order books or the Market WebSocket?
না। CLOB রিড (order book, midpoint, price history) এবং Market WebSocket পাবলিক। CLOB-এ ট্রেডিং এন্ডপয়েন্টগুলোর জন্য API কী এবং HMAC প্রয়োজন; Gamma এবং Data REST API-গুলো পাবলিক রিড।
সম্পর্কিত গাইডসমূহ
শিক্ষামূলক উদ্দেশ্যে בלבד। আর্থিক, আইনি বা কর-সম্পর্কীয় পরামর্শ নয়। হতে পারে আপনার এলাকা/নির্ধারিত অঞ্চলে Polymarket উপলব্ধ না থাকে।