Sarah Sepehri | Shiraz | Temporary detention | Witness Report Incorporated {"@context":"https://schema.org","@type":"ProfilePage","@id":"https://witness.report/people/21f30e17-34d3-11f1-8dee-560003f1f421/sarah-sepehri#profile","url":"https://witness.report/people/21f30e17-34d3-11f1-8dee-560003f1f421/sarah-sepehri","name":"Sarah Sepehri | Shiraz | Temporary detention | Witness Report Incorporated","mainEntity":{"@type":"Person","@id":"https://witness.report/people/21f30e17-34d3-11f1-8dee-560003f1f421/sarah-sepehri#person","name":"Sarah Sepehri","identifier":"21f30e17-34d3-11f1-8dee-560003f1f421","url":"https://witness.report/people/21f30e17-34d3-11f1-8dee-560003f1f421/sarah-sepehri","alternateName":"سارا سپهری","image":"https://witness.report/images/21f30e17-34d3-11f1-8dee-560003f1f421.jpg","nationality":["Iranian"],"description":"Last status: Temporary detention | Health: Unknown | City: Shiraz"},"primaryImageOfPage":{"@type":"ImageObject","contentUrl":"https://witness.report/images/21f30e17-34d3-11f1-8dee-560003f1f421.jpg","url":"https://witness.report/images/21f30e17-34d3-11f1-8dee-560003f1f421.jpg"}} Home About Tags ShahedSang Artist Athlete Blogger CaseNeedsUpdate ChainMurders Disability EnvironmentalActivist HealthcareStaff Journalist LabourActivist Lawyer NonPoliticalCase Photographer Poet PS752Justice ReligiousMinority Student Teacher TheGreenMovement Writer Browse in Advanced Search Get Involved Report New Case Membership Support Our Work Witness Report API News English Persian Advanced Search Search Logout 📞 +61485870004 📞 Call 💬 WhatsApp ✈️ Telegram (function() { const STORAGE_KEY = 'wr_google_id_token_v1'; const clientId = "196042580665-2576hlsgr5kr1qujskevu0ogjc99e0ug.apps.googleusercontent.com"; let googleIdentityPromise = null; window.wrLoadGoogleIdentity = function() { if (!clientId || (window.google && google.accounts && google.accounts.id)) { return Promise.resolve(); } if (googleIdentityPromise) return googleIdentityPromise; googleIdentityPromise = new Promise(function(resolve, reject) { const script = document.createElement('script'); script.src = 'https://accounts.google.com/gsi/client'; script.async = true; script.onload = resolve; script.onerror = reject; document.head.appendChild(script); }); return googleIdentityPromise; }; const loadGoogleOnInteraction = function() { window.wrLoadGoogleIdentity().catch(function() {}); }; document.addEventListener('pointerdown', loadGoogleOnInteraction, { once: true, passive: true }); document.addEventListener('keydown', loadGoogleOnInteraction, { once: true }); window.addEventListener('load', function() { setTimeout(loadGoogleOnInteraction, 1000); }, { once: true }); // Expose for other pages (people.php) to reuse init. window.wrGoogleStorageKey = STORAGE_KEY; const authSlot = document.getElementById('wrNavAuthSlot'); const loginEl = document.getElementById('wrNavGoogleSignIn'); const logoutBtn = document.getElementById('wrNavLogoutBtn'); if (!authSlot || !loginEl || !logoutBtn) return; function base64UrlDecodeToString(s) { try { const b64 = (s || '').replace(/-/g, '+').replace(/_/g, '/'); const padded = b64 + '==='.slice((b64.length + 3) % 4); return atob(padded); } catch (_) { return ''; } } function parseJwtPayload(token) { const parts = (token || '').split('.'); if (parts.length !== 3) return null; const json = base64UrlDecodeToString(parts[1]); if (!json) return null; try { return JSON.parse(json); } catch (_) { return null; } } function hasValidToken() { const token = (localStorage.getItem(STORAGE_KEY) || '').trim(); if (!token) return false; const payload = parseJwtPayload(token); const exp = payload && typeof payload.exp === 'number' ? payload.exp : 0; if (!exp) return false; return (Date.now() / 1000) < (exp - 30); } function setLoggedInUi(isLoggedIn) { if (!clientId) { authSlot.classList.add('d-none'); return; } authSlot.classList.remove('d-none'); logoutBtn.classList.toggle('d-none', !isLoggedIn); loginEl.classList.toggle('d-none', isLoggedIn); } window.wrHandleGoogleCredential = function(response) { const token = response && response.credential ? response.credential : ''; if (!token) return; try { localStorage.setItem(STORAGE_KEY, token); } catch (_) {} // Best-effort: notify server so we can keep an audit record of logins. // (Non-blocking; failures here should not break login UX.) try { fetch('/api/log_login.php', { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8' }, body: new URLSearchParams({ idToken: token }), credentials: 'same-origin', keepalive: true }).catch(function() {}); } catch (_) {} setLoggedInUi(true); try { window.dispatchEvent(new CustomEvent('wr-google-credential', { detail: { token } })); } catch (_) {} }; window.wrEnsureGoogleInit = function() { if (!clientId) return; if (window.wrGoogleInitDone) return; if (!window.google || !google.accounts || !google.accounts.id) return; google.accounts.id.initialize({ client_id: clientId, callback: window.wrHandleGoogleCredential, ux_mode: 'popup', itp_support: true }); window.wrGoogleInitDone = true; }; function initLoginButtonWhenReady() { const loggedIn = hasValidToken(); if (!loggedIn) { try { localStorage.removeItem(STORAGE_KEY); } catch (_) {} } if (!clientId) { setLoggedInUi(loggedIn); return; } if (!window.google || !google.accounts || !google.accounts.id) { setTimeout(initLoginButtonWhenReady, 50); return; } window.wrEnsureGoogleInit(); if (!loggedIn) { try { google.accounts.id.renderButton(loginEl, { theme: 'outline', size: 'medium' }); } catch (_) {} } setLoggedInUi(loggedIn); } logoutBtn.addEventListener('click', function() { try { localStorage.removeItem(STORAGE_KEY); } catch (_) {} setLoggedInUi(false); window.location.reload(); }); initLoginButtonWhenReady(); })(); Sarah Sepehri ReligiousMinority سارا سپهری Nationality : Iranian Age: 41 (1985) Status: Temporary detention Health: Unknown Share: X Telegram WhatsApp Bluesky | Contribute: Help Complete This Report UUID: 21f30e17-34d3-11f1-8dee-560003f1f421 Short link: https://sml.yt/xdsox Copy (function() { const copyButton = document.querySelector('.wr-short-link__copy'); if (!copyButton) return; copyButton.addEventListener('click', async function() { const url = copyButton.getAttribute('data-copy-url') || ''; try { await navigator.clipboard.writeText(url); } catch (error) { const tempInput = document.createElement('textarea'); tempInput.value = url; tempInput.setAttribute('readonly', ''); tempInput.style.position = 'fixed'; tempInput.style.opacity = '0'; document.body.appendChild(tempInput); tempInput.select(); const copied = document.execCommand('copy'); tempInput.remove(); if (!copied) return; } const label = copyButton.querySelector('span'); if (label) { label.textContent = 'Copied'; window.setTimeout(function() { label.textContent = 'Copy'; }, 1500); } }); })(); Date: 2026-04-30 City: ShirazProvince: FarsCountry: IranHealth Status: Unknown Status: Temporary detentionShe is still being held in a state of uncertainty in Adelabad Prison in Shiraz. On 9 April 2026, at approximately 17:00, security agents raided the home of Sara Sepahri, a Baha'i citizen residing in Shiraz. Following a search of the premises, she was detained and transferred to an undisclosed location.Reports indicate that the agents first inspected the residence of her mother, located on the lower floor of the building, before forcibly entering Sara Sepahri's home on the upper floor by breaking down the front door. During this operation, all electronic devices and personal and work-related items belonging to her were confiscated.As of the time of this report, no information has been released regarding the detaining authority, the location of her custody, or any potential charges against this Baha'i citizen.Sara Sepahri's mother has a disability and requires continuous care. Additionally, Sara Sepahri has been under medical supervision, and the pressures resulting from her detention and uncertain circumstances may pose a serious risk to her health. در تاریخ 20 فروردین 1405، حدود ساعت 17، ماموران امنیتی به منزل سارا سپهری، شهروند بهائی ساکن شیراز، یورش برده و پس از تفتیش محل، وی را بازداشت و به مکانی نامعلوم منتقل کردند.بر اساس اطلاعات دریافتی، ماموران ابتدا منزل مادر این شهروند را که در طبقه پایین ساختمان قرار دارد، مورد بازرسی قرار داده و سپس با شکستن در ورودی، وارد منزل سارا سپهری در طبقه بالا شده اند. در جریان این عملیات، تمامی وسایل الکترونیکی و اقلام شخصی و کاری وی ضبط شده است.تا زمان تنظیم این گزارش، هیچ گونه اطلاعاتی درباره نهاد بازداشت کننده، محل نگهداری و یا اتهامات احتمالی مطرح شده علیه این شهروند بهائی منتشر نشده است.مادر خانم سپهری دارای معلولیت بوده و نیازمند مراقبت مستمر است. همچنین، سارا سپهری تحت نظر پزشک قرار داشته و فشارهای ناشی از بازداشت و شرایط نامعلوم می تواند سلامت او را به طور جدی در معرض خطر قرار دهد. More people in Shiraz, Temporary detention Behzad Yazdani بهزاد یزدانی Yaser Hashemi یاسر هاشمی Matin Molayi متین مولایی Complete list ... History: Date: 2026-04-10 City: ShirazProvince: FarsCountry: IranHealth Status: Unknown Status: KidnappedOn Thursday, April 9, 2026, at around 5:00 PM, security officers raided the home of Sara Sepehri, a Baha'i citizen living in Shiraz, arrested her after searching the premises and transferred her to an unknown location. Help Complete This Report with Your Input برای تکمیل این گزارش، اطلاعات خود را بنویسید. What should be corrected or added? چه چیزی باید اصلاح یا اضافه شود؟ Send updateارسال به‌روزرسانی To send a correction or message, please sign in with Google. No subscription is needed. برای ارسال اصلاحیه یا پیام، لطفاً با حساب گوگل وارد شوید. نیازی به اشتراک نیست. (function() { const clientId = "196042580665-2576hlsgr5kr1qujskevu0ogjc99e0ug.apps.googleusercontent.com"; const signInEl = document.getElementById('wrGoogleSignIn'); const formEl = document.getElementById('wrErrorReportForm'); const tokenEl = document.getElementById('wrGoogleIdToken'); const textareaEl = document.getElementById('wrReportText'); const submitBtn = document.getElementById('wrSubmitReportBtn'); const statusEl = document.getElementById('wrReportStatus'); const loginHintEl = document.getElementById('wrReportLoginHint'); if (!clientId || !signInEl || !formEl || !tokenEl) return; const STORAGE_KEY = (window.wrGoogleStorageKey || 'wr_google_id_token_v1'); function base64UrlDecodeToString(s) { try { const b64 = (s || '').replace(/-/g, '+').replace(/_/g, '/'); const padded = b64 + '==='.slice((b64.length + 3) % 4); const binary = atob(padded); // Convert binary -> UTF-8 const bytes = Uint8Array.from(binary, c => c.charCodeAt(0)); return new TextDecoder('utf-8', { fatal: false }).decode(bytes); } catch (_) { return ''; } } function parseJwtPayload(token) { const parts = (token || '').split('.'); if (parts.length !== 3) return null; const json = base64UrlDecodeToString(parts[1]); if (!json) return null; try { return JSON.parse(json); } catch (_) { return null; } } function getStoredValidToken() { const t = (localStorage.getItem(STORAGE_KEY) || '').trim(); if (!t) return ''; const payload = parseJwtPayload(t); const exp = payload && typeof payload.exp === 'number' ? payload.exp : 0; // Consider it expired 30s early to avoid edge cases. if (!exp || (Date.now() / 1000) >= (exp - 30)) return ''; return t; } function clearStoredToken() { try { localStorage.removeItem(STORAGE_KEY); } catch (_) {} } function setFormEnabled(enabled) { const on = !!enabled; if (textareaEl) textareaEl.disabled = !on; if (submitBtn) submitBtn.disabled = !on; } function showLoginPrompt() { setFormEnabled(false); tokenEl.value = ''; if (signInEl) signInEl.classList.remove('d-none'); if (loginHintEl) loginHintEl.classList.remove('d-none'); setStatus('', ''); } function showReportFormWithToken(token) { tokenEl.value = token; if (signInEl) signInEl.classList.add('d-none'); if (loginHintEl) loginHintEl.classList.add('d-none'); setFormEnabled(true); setStatus('', ''); } function setStatus(html, kind) { if (!statusEl) return; statusEl.className = kind ? ('alert alert-' + kind) : ''; statusEl.innerHTML = html || ''; } function initWhenReady() { // If we already have a valid token from a previous page, reuse it. const existing = getStoredValidToken(); if (existing) { showReportFormWithToken(existing); return; } else { clearStoredToken(); showLoginPrompt(); } // Initialize (once) via header helper, then render the button here. function renderWhenReady() { if (!window.google || !google.accounts || !google.accounts.id) { setTimeout(renderWhenReady, 50); return; } if (typeof window.wrEnsureGoogleInit === 'function') { try { window.wrEnsureGoogleInit(); } catch (_) {} } else { // Fallback if header isn't present for some reason. try { google.accounts.id.initialize({ client_id: clientId, callback: window.wrHandleGoogleCredential || function() {}, ux_mode: 'popup', itp_support: true }); } catch (_) {} } try { google.accounts.id.renderButton(signInEl, { theme: 'outline', size: 'large' }); } catch (_) {} } renderWhenReady(); } initWhenReady(); // If user logs in from the navbar, this page can react immediately. window.addEventListener('wr-google-credential', function(e) { const token = e && e.detail && e.detail.token ? String(e.detail.token) : ''; if (!token) return; showReportFormWithToken(token); if (textareaEl) textareaEl.focus(); }); formEl.addEventListener('submit', async function(e) { e.preventDefault(); setStatus('Sending…', 'info'); try { const formData = new FormData(formEl); const res = await fetch(formEl.action, { method: 'POST', body: formData, credentials: 'same-origin' }); const data = await res.json().catch(() => null); if (!res.ok || !data || !data.ok) { const msg = (data && data.error) ? data.error : 'Could not submit your report. Please try again later.'; setStatus(msg, 'warning'); // If auth failed (expired/invalid token), clear and show sign-in. const lower = (msg || '').toLowerCase(); if (lower.includes('token') || lower.includes('google') || res.status === 401 || res.status === 403) { clearStoredToken(); showLoginPrompt(); } return; } setStatus('Thank you. Your message was sent for review.', 'success'); if (textareaEl) textareaEl.value = ''; if (textareaEl) textareaEl.disabled = true; if (submitBtn) submitBtn.disabled = true; formEl.classList.add('d-none'); } catch (err) { setStatus('Network error. Please try again.', 'warning'); } }); })(); Once you submit your report, we carefully review and publish it as the latest verified update on the detainee's case, ensuring that their situation remains visible, documented, and accessible to the public. By keeping accurate and up to date information online, Witness Report helps prevent cases from being forgotten, strengthens public awareness, and reinforces accountability. This process offers reassurance that your loved one's story continues to be seen, acknowledged, and remembered. Media WR News X (Twitter) Instagram Telegram Channel Thank You Mardom Fundation EasyHostWay.AU The Joint Action Group Get Involved Report New Case Membership Support Our Work Witness Report API About Us Privacy Policy Recently Viewed © 2022-2026 Witness Report Incorporated. Established 2022. All rights reserved. (function() { const cookieName = 'wr_recent_profiles'; const recentSections = document.querySelectorAll('[data-recent-profiles]'); function readRecentProfiles() { const cookie = document.cookie.split('; ').find(function(item) { return item.indexOf(cookieName + '=') === 0; }); if (!cookie) return []; try { const profiles = JSON.parse(decodeURIComponent(cookie.substring(cookieName.length + 1))); if (!Array.isArray(profiles)) return []; return profiles.filter(function(profile) { if (!profile || typeof profile.name !== 'string' || typeof profile.path !== 'string') return false; try { const url = new URL(profile.path, window.location.origin); return url.origin === window.location.origin && url.pathname.indexOf('/people/') === 0; } catch (error) { return false; } }).slice(0, 5); } catch (error) { return []; } } const profiles = readRecentProfiles(); const currentProfile = document.getElementById('wrCurrentProfileVisit'); if (currentProfile) { const currentPath = currentProfile.dataset.profilePath || ''; const currentName = currentProfile.dataset.profileName || ''; if (currentPath && currentName) { const existingIndex = profiles.findIndex(function(profile) { return profile.path === currentPath; }); if (existingIndex !== -1) profiles.splice(existingIndex, 1); profiles.unshift({ name: currentName, path: currentPath }); profiles.splice(5); const cookieValue = encodeURIComponent(JSON.stringify(profiles)); document.cookie = cookieName + '=' + cookieValue + '; Path=/; Max-Age=7776000; SameSite=Lax' + (window.location.protocol === 'https:' ? '; Secure' : ''); } } recentSections.forEach(function(section) { const recentList = section.querySelector('[data-recent-profiles-list]'); if (!recentList) return; profiles.forEach(function(profile) { const item = document.createElement('li'); const link = document.createElement('a'); link.href = profile.path; link.textContent = profile.name; item.appendChild(link); recentList.appendChild(item); }); if (profiles.length) section.classList.remove('d-none'); }); })(); window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-L6GJNEC9YW'); // Prevent navbar from collapsing when dropdown is clicked document.addEventListener('DOMContentLoaded', function() { const dropdown = document.querySelector('.navbar .dropdown'); if (dropdown) { dropdown.addEventListener('click', function(e) { e.stopPropagation(); }); } }); if ('serviceWorker' in navigator) { window.addEventListener('load', function() { navigator.serviceWorker.register('/sw.js', { scope: '/' }).catch(function(err) { console.warn('Service worker registration failed:', err); }); }); }